【发布时间】:2011-07-13 07:33:02
【问题描述】:
我们在 VS2005 中构建了一个相当大的 C++ 项目,从头开始编译和构建可能需要 40 分钟,安装程序需要 10 分钟,因为该软件同时构建为 32 位和 64 位配置。我想将此时间减少到至少 10 分钟左右,因为我觉得在使用持续集成时获得快速构建反馈很重要。
当通过删除最终链接文件而不是 .obj 文件来使用增量构建时,构建过程似乎要快得多,但似乎会到处弹出错误,例如无法加载 .dll。从干净的构建开始,一切正常。我使用 TeamCity 作为 CI 系统的选择。
也许在更高版本的 Visual Studio 中增量构建行为会更好,这可能是升级的好动机?有没有人遇到过类似的问题?
【问题讨论】:
-
能否详细说明您提到的错误?我很难理解为什么部分构建会引发 DLL 加载问题。这是否意味着您总是干净地构建您的项目以使其正常工作?
-
我们有一个小脚本,它在所有 .dll 上调用 LoadLibrary(),只是为了确保满足所有依赖项要求。某些 .dll 似乎失败了。如果我们通过 Visual Studio 构建或从命令行使用 msbuild 并调用它两次,则似乎不会出现问题。但我认为增量构建取决于源代码日期,可能是当 TeamCity 从存储库更新代码时,文件上的修改日期也会恢复(我们使用的是 mercurial)。我会进一步调查。
标签: c++ visual-c++ build-automation incremental-build