【发布时间】:2014-11-04 23:42:14
【问题描述】:
我有一个类似于以下的代码库:
来源:
src/a/b/c.cpp
和单元测试(这些实际上是 boost 单元测试可执行文件):
test/a/b/c_test.cpp
src 树用于单个可执行目标。但是c.cpp 仅使用该目标的库依赖项的子集,例如-lx,属于-lx -ly -lz。
同样,c_test.cpp 编译为一个测试可执行文件,该可执行文件链接到 c.cpp 的 -lx、c.o 和其他一些用于测试的库。
为了设置构建系统,在这种情况下,我有两个选择:
- 将构建系统中的每个此类可执行文件与其自己的库依赖项列表配对。 (很痛苦,但也许可以通过映射头依赖 -> 库来自动化。)
- 或者,对所有测试可执行文件和主可执行文件使用相同的库列表。 (简单、无痛的方法)。
#2“大体上”的构建系统性能影响是什么?真的很重要吗?
杂项: 这是 g++ (Debian 4.9.1-16) 4.9.1
【问题讨论】:
标签: c++ performance gcc ld build-system