c++ - 为 C++ 构建解决方案

标签 c++ build-process build build-automation

我想为在 Visual Studio 2005 中开发的非托管 C++ 代码设置构建服务器。构建服务器应该能够执行以下操作:

  • 监控 Subversion 存储库的代码更改并安排构建
  • 从 Subversion check out 代码并运行单元测试
  • 提供某种关于构建成功和与之前构建相比的变化的报告

我最初一直在考虑将 CruiseControl 与 Ant 结合使用。有更好的解决方案吗?也许是 CruiseControl.Net 和 NAnt?

最佳答案

NAnt 需要大量工作才能有效地构建 C++。它确实是一个彻头彻尾的 .NET 构建系统。我们正在为四个 C++ 平台和一组 .NET 工具构建我们的标题,并且花了一些时间让 NAnt 适应我们的需求。例如,NAnt 的 C++ 依赖分析非常糟糕,我们不得不自己编写。它有很多性能问题,我们不得不对其进行破解才能修复。

所以不要在这上面双脚跳进去。做一些初步测试以确保它真的可以做你想做的事情,并了解你需要为 C++ 修改多少。

此外,我们还使用 CruiseControl.NET 来处理一些 NUnit 内容,我们已将这些内容构建到驱动我们正在开发的游戏的工具之一中。对此非常满意,设置起来非常容易。在这里竖起大拇指。

在之前的演出中,我在您描述的确切场景中使用了 Final Builder - 在构建服务器上。本地构建是使用 Visual Studio 完成的。这是一个非常棒的产品,如果你有一点钱可以花,我会认真考虑的。我们从中得到了很好的结果。

在我现在的公司,我们选择了 NAnt,因为我们不想为团队中的每个工程师都购买 FB。我们也不喜欢 FB 是闭源的。所以我们 100% Nant 并且喜欢它。只是花了一些时间让它成型!

关于c++ - 为 C++ 构建解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/296728/

相关文章:

c++ - 在 Python 中包装 C++ 库,处理自定义类型

svn - NetBeans 构建文件永远不会正确

不能用 GCC 包含文件

android - Google Play 控制台警告 : Unknown validation VALIDATE_APP_MESSAGE_NO_APKS

c++ - 临时对象存储在哪里?

c++ - 对象 c++ 之前的预期主表达式

c++ - 是否保证 C++ vector v 的 v.begin() + v.size() == v.end() ?

build-process - 指定为对多个规则的依赖时重新执行目标

maven - 在父pom中定义Maven插件,但仅调用子项目中的插件

objective-c - 构建时出现多个构建命令警告-Objective C