英文:
What are possible go build -ldflags options?
问题
你可以在Go语言官方文档中找到关于所有可能的Go链接器(go build -ldflags
)选项的文档。尝试使用go help build
命令可能无法显示有关-ldflags
的详细信息。
英文:
Where do I find a documentation about all the possible Go linker (go build -ldflags
) options?
I tried go help build
but it doesn't show any details about -ldflags
.
答案1
得分: 4
你可以在https://pkg.go.dev/cmd/link找到有关Go链接器选项的文档。
此外,还有一个特殊的-ldflags="-help"
选项,可以打印出所有可能的golang链接器选项:
$ go build -ldflags="-help" ./main.go
usage: link [options] main.o
-B note
在使用ELF时添加一个ELF NT_GNU_BUILD_ID注释
-E entry
设置入口符号名称
-H type
设置头类型
-I linker
使用linker作为ELF动态链接器
-L directory
将指定的目录添加到库路径
-R quantum
设置地址舍入量子(默认值为-1)
-T address
设置文本段地址(默认值为-1)
-V 打印版本并退出
-X definition
添加形式为importpath.name=value的字符串值定义
-a 无操作(已弃用)
-asan
启用ASan接口
-aslr
在Windows上启用ASLR以进行buildmode=c-shared(默认值为true)
-benchmark string
设置为'mem'或'cpu'以启用阶段基准测试
-benchmarkprofile base
将阶段配置文件写入base_phase.{cpu,mem}prof
-buildid id
将id记录为Go工具链构建id
-buildmode mode
设置构建模式
-c 转储调用图
-compressdwarf
尽可能压缩DWARF(默认值为true)
-cpuprofile file
将CPU配置文件写入文件
-d 禁用动态可执行文件
-debugnosplit
转储nosplit调用图
-debugtextsize int
调试文本段最大大小
-debugtramp int
调试跳板
-dumpdep
转储符号依赖图
-extar string
buildmode=c-archive的存档程序
-extld linker
在外部模式下链接时使用链接器
-extldflags flags
将标志传递给外部链接器
-f 忽略版本不匹配
-g 禁用go包数据检查
-h 错误时停止
-importcfg file
从文件中读取导入配置
-installsuffix suffix
设置包目录后缀
-k symbol
设置字段跟踪符号
-libgcc string
用于内部链接的编译器支持库;使用"none"禁用
-linkmode mode
设置链接模式
-linkshared
链接到已安装的Go共享库
-memprofile file
将内存配置文件写入文件
-memprofilerate rate
将runtime.MemProfileRate设置为rate
-msan
启用MSan接口
-n 转储符号表
-o file
将输出写入文件
-pluginpath string
插件的完整路径名
-r path
将ELF动态链接器搜索路径设置为dir1:dir2:...
-race
启用竞争检测器
-s 禁用符号表
-strictdups int
在读取对象文件期间对重复符号内容进行健全性检查(1=警告 2=错误)。
-tmpdir directory
使用目录作为临时文件
-v 打印链接跟踪
-w 禁用DWARF生成
英文:
You can find documentation about Go linker options at https://pkg.go.dev/cmd/link.
Also, there's a special -ldflags="-help"
option that prints all possible golang linker options:
$ go build -ldflags="-help" ./main.go
usage: link [options] main.o
-B note
add an ELF NT_GNU_BUILD_ID note when using ELF
-E entry
set entry symbol name
-H type
set header type
-I linker
use linker as ELF dynamic linker
-L directory
add specified directory to library path
-R quantum
set address rounding quantum (default -1)
-T address
set text segment address (default -1)
-V print version and exit
-X definition
add string value definition of the form importpath.name=value
-a no-op (deprecated)
-asan
enable ASan interface
-aslr
enable ASLR for buildmode=c-shared on windows (default true)
-benchmark string
set to 'mem' or 'cpu' to enable phase benchmarking
-benchmarkprofile base
emit phase profiles to base_phase.{cpu,mem}prof
-buildid id
record id as Go toolchain build id
-buildmode mode
set build mode
-c dump call graph
-compressdwarf
compress DWARF if possible (default true)
-cpuprofile file
write cpu profile to file
-d disable dynamic executable
-debugnosplit
dump nosplit call graph
-debugtextsize int
debug text section max size
-debugtramp int
debug trampolines
-dumpdep
dump symbol dependency graph
-extar string
archive program for buildmode=c-archive
-extld linker
use linker when linking in external mode
-extldflags flags
pass flags to external linker
-f ignore version mismatch
-g disable go package data checks
-h halt on error
-importcfg file
read import configuration from file
-installsuffix suffix
set package directory suffix
-k symbol
set field tracking symbol
-libgcc string
compiler support lib for internal linking; use "none" to disable
-linkmode mode
set link mode
-linkshared
link against installed Go shared libraries
-memprofile file
write memory profile to file
-memprofilerate rate
set runtime.MemProfileRate to rate
-msan
enable MSan interface
-n dump symbol table
-o file
write output to file
-pluginpath string
full path name for plugin
-r path
set the ELF dynamic linker search path to dir1:dir2:...
-race
enable race detector
-s disable symbol table
-strictdups int
sanity check duplicate symbol contents during object file reading (1=warn 2=err).
-tmpdir directory
use directory for temporary files
-v print link trace
-w disable DWARF generation
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论