首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在编译时控制静态或动态库链接吗?每一个都创建了不同的。二进制大小?

我可以在编译时控制静态或动态库链接吗?每一个都创建了不同的。二进制大小?
EN

Stack Overflow用户
提问于 2016-02-24 16:01:54
回答 1查看 1.1K关注 0票数 2

在一次Go研讨会上,讲师说,当他编译Go应用程序时,静态链接的二进制文件的大小约为600MB,但当他使用静态链接编译相同的应用程序时,结果二进制文件变成了10MB。

我不确定他在说什么,编译过程中的动态链接和静态链接是否会在二进制文件的空间上产生差异,我对此有控制吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-24 16:32:02

默认情况下,Go使用静态链接,因此所有内容(代码和包的源代码)都编译成一个大的二进制文件。

自Go 1.5发布以来,您可以使用go buildgo install-buildmode=shared选项编译Go共享库。然后,您可以使用-linkshared标志编译您的应用程序二进制文件。详情可以在here上找到。

当然,如果您动态链接包,您的二进制大小将小于静态链接,但总的应用程序大小不会减少,因为您只是“将代码放在其他地方”。因此,只有当你需要在不同的应用程序之间共享相同的包时,动态链接才有意义。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35596415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档