外部链接会增加链接/构建时间吗?

时间:2013-02-11 09:10:17

标签: c++ compilation linker

我已经读过最好有内部链接(对于变量,自由函数等),因为这会减少从特定编译单元“导出”的符号数。这样建立时间可能会更好。

这是真的吗?

使用内部链接的另一个好处是名称冲突不会有任何问题。

参考:Large-Scale C++ Software Design

1 个答案:

答案 0 :(得分:1)

理论上是的,但是...... C ++演变为通用编程。名称空间的引入限制了名称冲突问题。

以单独的cpp文件的形式从“headr only libraries”的形式编写程序总是更频繁,这个cpp文件只包含一个main,其目的是实例化一个负责所有业务流程的“manager对象”,并提供一个最后逃脱的例外情况“赶上”。通过“预编译头”可以使长符号表更快。

从这个意义上讲,所有联系都是“内部的”,因为没有什么可以“导出”。

更一般地说,很少的外部链接导致更快的链接时间,很少的内部链接导致更快的编译时间。当内部和外部表格相互平衡时,最有可能的最小值。但还有许多其他重要因素需要处理。

我想知道这样的书是否仍然可以被认为是今天标准的“好”:你是否注意到它所建议的例子 - 关于迭代器的例子,除了今天的标准库以外什么都有?