gpt4 book ai didi

c++ - 库 C++ 的过度包含

转载 作者:搜寻专家 更新时间:2023-10-31 01:59:39 24 4
gpt4 key购买 nike

我正在阅读有关如何将 makefile 放在一起的信息,但是似乎没有人提到如果您的文件需要不同的库集该怎么办,它们似乎都为每个文件使用相同的库集。由于似乎不太可能每个文件都具有相同的库,我认为他们使用的列表必须合并整个项目所需的所有库。

我只是想知道包含太多库是否有任何缺点,或者编译器是否会计算出需要哪些库并忽略其余的?

谢谢

最佳答案

If there's any downside to including too many libraries?

几乎没有。

If the compiler works out which ones are needed and ignores the rest?

几乎完全正确:是链接器检查每个库并只提取它需要的目标代码。

包含大量库的一个缺点是很难按正确的顺序排列它们。 GNU 链接器的最新版本有一些特殊选项可以帮助解决库乱序问题(这也是时候了),但这些选项仍然不可移植。另一方面,如果您包含实际上不需要的库,那么它们出现的顺序并不重要,因为链接器会仔细检查每个库并确定不需要其中的任何内容。

对于那些正在寻找项目的人来说,这是我很想拥有的一个:给我一个工具,它可以获取库列表并对库间依赖关系进行拓扑排序,然后告诉我一个顺序我可以将它们放在命令行中,这样就不会出现无故 undefined symbol 。

关于c++ - 库 C++ 的过度包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com