Go语言的静态链接与动态链接

Go语言的静态链接与动态链接,第1张

Go语言在默认情况下是静态链接的:

但是,有一些库可能会导致动态链接:

这时候如果你确实需要静态链接,那么可以增加 -ldflags="-extldflags --static" 参数来进行静态链接,即这个命令:

go build -ldflags="-extldflags --static"

当然,还存在一些第三方库,因调用了一些 glibc 中不支持静态链接的函数,而导致无法静态链接:

对于这类情况,如果坚持一定要静态链接,那么可以弃用 glibc 库,改用 musl libc 库。

如果你使用的 *** 作系统是 Debian / Ubuntu ,那么可以运行如下命令安装 musl libc 库:

sudo apt-get install musl-dev musl-tools

然后使用 musl libc 库来静态链接,命令是:

CC=musl-gcc go build -tags musl -ldflags="-extldflags --static"

于是,静态链接成功。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存