GO 教程

Go linker(go tool link)参数速查表

一、构建标识 / 版本 / 信息注入(最常用 ⭐⭐⭐)

参数 说明 常用
-B note 设置 ELF Build ID / Mach-O UUID ⭐
-buildid id 设置 Go build ID(-buildid= 可禁用) ⭐⭐
-X importpath.name=value 向 string 变量注入值 ⭐⭐⭐
-pluginpath path 设置 plugin 的完整路径 ⭐⭐

二、调试 / 符号 / DWARF(VSCode / dlv 重点 ⭐⭐⭐)

参数 说明 调试建议
-s 去掉符号表 ❌ 调试别用
-w 去掉 DWARF 调试信息 ❌ 调试别用
-compressdwarf 压缩 DWARF(默认 true) ⭐ 大工程可关
-randlayout 随机函数布局 ❌
-k symbol 跟踪字段符号 ❌

三、构建模式 / 插件 / C 交互(你关心的 ⭐⭐⭐)

参数 说明 备注
-buildmode 构建模式(exe / c-shared / plugin) ⭐⭐⭐
-linkmode internal / external ⭐⭐
-extld 指定外部 linker ⭐
-extldflags 传递给外部 linker 的参数 ⭐
-aslr Windows c-shared 启用 ASLR ⭐

四、性能 / 分析 / 运行时行为(中级 ⭐⭐)

参数 说明
-race 启用竞态检测
-msan 内存检查(Linux)
-asan AddressSanitizer
-memprofilerate runtime.MemProfileRate
-cpuprofile CPU profile
-memprofile 内存 profile

五、ELF / 系统级(Linux 为主,Windows 很少用)

参数 说明
-r path ELF 动态库搜索路径
-bindnow 立即绑定符号
-I linker ELF 动态 linker
-L dir 库搜索路径
-d 禁用动态可执行

六、调试 linker 自身(极少用)

参数 说明
-v 打印 link trace
-benchmark 链接阶段性能
-benchmarkprofile 链接阶段 profile
-dumpdep 符号依赖图
-c 调用图
-debugnosplit nosplit 调用图

七、兼容 / 旧参数(了解即可)

参数 说明
-a no-op(已废弃)
-n no-op(已废弃)
-f 忽略版本不匹配
-g 禁用包数据检查
-h 出错即停

最重要的 10 个(你现在真的会用的)

复制代码
-X
-s
-w
-buildid
-buildmode
-linkmode
-extldflags
-compressdwarf
-race
-pluginpath

给你一个「实战对照表」

🔹 VSCode / dlv 调试(推荐)

复制代码
# 什么 ldflags 都不要
# VSCode 自动加:
-gcflags=all=-N -l

🔹 发布版本(最经典)

复制代码
-ldflags="-s -w -buildid="

🔹 插件 / 版本注入(强烈推荐)

复制代码
-ldflags="-X myproject/core.Version=1.2.0 -X myproject/core.Mode=prod"

🔹 并发 / channel 排错

复制代码
-race
相关推荐
1024奇点8 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
实名上网宋凯宣8 小时前
Django
后端·python·django
Warren2Lynch9 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
Knight_AL10 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
利威尔xu10 小时前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
FRing0310 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
逃逸线LOF11 小时前
Ribbon负载均衡原理(Irule组件、源码分析)
后端·spring cloud·ribbon
by2099911 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河11 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
慢云智慧空间11 小时前
从设备智能到空间理解,空间智能终端解决方案商如何重新定义行业标准
后端