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

标签 c++ compilation linker

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

这是真的吗?

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

引用:Large-Scale C++ Software Design

最佳答案

理论上是的,但是...... C++ 向泛型编程发展。并且命名空间的引入限制了名称冲突问题。

以“headr only libraries”的形式编写程序总是更频繁地包含在单个 cpp 文件中,该文件仅包含一个 main,其目的是实例化一个负责所有编排的“管理器对象”,并提供一个最终逃脱异常的最后手段“捕获”。长符号表可以通过“预编译头”使速度更快。

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

一般而言,外部链接越少,链接时间越短,内部链接越少,编译时间越短。当内部表和外部表相互平衡时,最有可能达到最佳最小值。但还有许多其他重要因素需要注意。

我想知道像这样的书对于今天的标准来说是否仍然可以被认为是“好”的:你是否注意到它所建议的——例如——关于迭代器的内容与今天的标准库所做的完全不同?

关于c++ - 外部链接会增加链接/构建时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808949/

相关文章:

c++ - 如何在不单击的情况下初始化 QComboBox 的默认值?

c++ - 未定义/未指定/实现定义的行为警告?

c++ - 如何找到编译瓶颈?

c++ - CMake 生成器表达式到链接器

module - OCaml 交联

c++ - 在 C++ 语法中抛出异常

c++ - 在 `for` 循环内递增后,迭代器结束检查失败

haskell - 如何指定 GHC 应该使用哪些 LLVM 二进制文件?

build - 改进 Rust 二进制构建时间

c++ - 调试 Visual Studio 链接器