首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g++会将我的程序链接到它不使用的库中的类吗?

g++会将我的程序链接到它不使用的库中的类吗?
EN

Stack Overflow用户
提问于 2012-09-29 19:39:58
回答 4查看 291关注 0票数 8

我已经创建了一个简单的静态库,包含在一个.a文件中。我可能会在各种项目中使用它,其中一些项目根本不需要90%的它。例如,如果我想在AVR微机上使用神经网络,这是我的库的一部分,我可能不需要太多的其他东西,但这些东西是否会链接到我的代码中,从而可能生成一个相当大的文件?

我打算编译这样的程序:

g++ myProg.cpp myLib.a -o prog

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-29 19:45:47

G++将只从您的库中提取所需的目标文件,但这意味着如果使用单个目标文件中的一个符号,则该目标文件中的所有内容都将添加到您的可执行文件中。

一个源文件变成一个目标文件,因此只有在确定需要时才将它们逻辑地分组在一起是有意义的。

这种做法因编译器而异(实际上因链接器而异)。例如,Microsoft链接器将把对象文件拆分开来,只包含那些实际需要的部分。

票数 4
EN

Stack Overflow用户

发布于 2012-09-29 19:49:22

您还可以尝试将库拆分为独立的较小部分,并只链接您真正需要的部分。

票数 2
EN

Stack Overflow用户

发布于 2012-09-29 19:44:16

当您链接到静态库时,链接器会拉入解析代码其他部分中使用的名称的内容。一般而言,如果不使用该名称,则不会链接到该名称。

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

https://stackoverflow.com/questions/12652393

复制
相关文章

相似问题

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