是否可以编译具有依赖关系的golang代码?

时间:2015-07-11 19:22:17

标签: go compilation

是否可以编译具有依赖关系的golang代码?对于可执行文件很小。

1 个答案:

答案 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