Go命令行—link

能够读取main包下的归档文件和依赖库,并将它们组合成可执行的二进制文件。

命令行

go tool link [flags] main.a

参数

-B note
	使用ELF时添加ELF_NT_GNU_BUILD_ID标记。
	该值应该从0x开始,并且是偶数的十六进制数字。
-D address
	设置数据段地址。
-E entry
	设置实体符号名称。
-H type
	设置可执行格式类型。
	默认格式是从GOOS和GOARCH中推断出来的。
	在Windows上,-H windowsgui写了一个“GUI二进制文件”,而不是“控制台二进制文件”。
-I interpreter
	设置要使用的ELF动态链接器。
-L dir1 -L dir2
	在检查 $GOROOT/pkg/$GOOS_$GOARCH 后在 dir1, dir2 文件查找导入的包。
-R quantum
	Set address rounding quantum.
-T address
	设置文本地址。
-V
	打印链接器版本并退出。
-X importpath.name=value
	将importpath命名的字符串变量的值设置为value。
-buildmode mode
	设置编译类型 (默认 exe).
-cpuprofile file
   将CPU配置文件写入文件。
-d
	禁用动态可执行文件的生成。
	生成的代码在任何情况下都是相同的; 选项
    只控制是否包含动态标题。
    动态标题默认打开,即使没有
    引用动态库,因为很多常见的
    系统工具现在假定存在标题。
-extar ar
	设置外部存档程序(默认“ar”)。
	仅用于-buildmode = c-archive。
-extld linker
	设置外部链接器(默认“clang”或“gcc”)。
-extldflags flags
	设置空格分隔的标志以传递给外部链接器。
-f
	忽略链接存档中的版本不匹配。
-g
	禁用Go包数据检查。
-installsuffix suffix
	在 $GOROOT/pkg/$GOOS_$GOARCH_suffix 中查找文件
	而非 $GOROOT/pkg/$GOOS_$GOARCH。
-libgcc file
	设置编译器支持库的名称。
	仅用于内部链接模式。
	如果没有设置,运行编译器默认值,
	可以通过-extld选项来设置。
	设置为“none”不使用支持库。
-linkmode mode
	设置链接模式 (internal, external, auto).
	在 cmd/cgo/doc.go 中查看。
-linkshared
	链接到已安装的Go共享库(实验功能)。
-memprofile file
	将内存配置文件写入文件。
-memprofilerate rate
	设置runtime.MemProfileRate评分。
-msan
	与 C/C++ memory sanitizer support 链接。
-o file
	将输出写入文件(Windows上的默认a.out或a.out.exe)。
-pluginpath path
	用于为导出的插件符号添加前缀的路径名称。
-r dir1:dir2:...
	设置ELF动态链接器搜索路径。
-race
	与竞争检测库链接。
-s
	省略符号表和调试信息。
-shared
	生成共享对象(意味着-linkmode external; experimental)。
-tmpdir dir
	写临时文件到当前目录。
	临时文件仅用于外部链接模式。
-v
	打印链接器操作的跟踪日志。
-w
	省略DWARF符号表。