是否可以编译具有依赖关系的golang代码?对于可执行文件很小。
答案 0 :(得分:2)
如" Linking golang statically" (Vincent Batts):
只要编译的源是本机go,go编译器将静态链接可执行文件 虽然当你需要使用cgo时,编译器必须使用它的外部链接器。
纯粹的go程序将显示如下:
$> go build ./code-pure.go
$> ldd ./code-pure
not a dynamic executable
$> file ./code-pure
./code-pure: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
除非你添加一个额外的标志,例如:
,否则cgo不会这样go build --ldflags '-extldflags "-static"' ./code-cgo.go
# or, with gccgo
go build -compiler gccgo --gccgoflags "-static" ./code-cgo.go
提醒,即使使用Go 1.5(使用go进行编译,而不使用gc
),gccgo will still be there。