【发布时间】:2009-02-09 13:20:59
【问题描述】:
我们目前使用单一命令行工具在 Windows 和 Linux 上构建我们的产品。
Si 到目前为止它工作得很好,允许我们从源代码构建并且具有比我们以前的任何构建系统所允许的更精细的依赖关系。这为我们带来了强大的增量和并行构建能力。
为了简要描述构建过程,我们采用通常的做法:
.cpp -- cl.exe --> .obj and .pdb
multiple .obj and .pdb -- cl.exe --> single .dll .lib .pdb
multiple .obj and .pdb -- cl.exe --> single .exe .pdb
msvc C/C++ 编译器充分支持它。
最近出现了构建一些静态库的需求。 根据我们收集到的信息,构建静态库的过程是:
multiple .cpp -- cl.exe --> multiple .obj and a single .pdb
multiple .obj -- lib.exe --> a single .lib
单个 .pdb 意味着 cl.exe 应该只对所有 .cpp 源执行一次。这个单一的执行意味着我们不能并行化这个静态库的构建。这真是不幸。
我们根据文档(和可用的命令行选项)进行了进一步调查:
-
cl.exe不知道如何构建静态库 -
lib.exe不知道如何构建 .pdb 文件
有人知道合并多个 PDB 文件的方法吗?我们注定要缓慢构建静态库吗? Incredibuild 等工具如何解决此问题?
【问题讨论】:
-
您始终可以将代码放在固态驱动器上。构建速度快如闪电。
-
我在我的样式簿上使用固态驱动器。它有帮助,但链接受 IO 限制,编译受 CPU 限制。
标签: visual-c++ command-line pdb-files