dbo*_*tha 18 c++ build-automation cross-platform
我有一个跨平台的C++项目,目标是在Linux,OSX和Windows上成功编译.我正在使用GNU Make来处理所有平台上的构建,gcc用于在Linux和OSX下进行编译,而cl.exe用于在Windows下的Cygwin下进行编译.我目前的工作流程包括在OSX下编码,然后在每个平台上构建以测试代码的可移植性.这个过程有点耗时,我想知道是否有可能在一步中自动构建所有平台?
syn*_*tel 10
如果我正确理解OP,问题不是替换make而是如何在每个平台上启动构建?
我建议使用http://jenkins-ci.org/ - 它是java,可以在Windows,Linux,OSX等上运行.它可以配置为同时启动构建作业,以便任何时候你想要进行构建每个平台都可以同时启动.
詹金斯的学习曲线并不可怕,但是一旦你做到这一点,它可能需要大约3-4个小时才能正常工作.
如果你想成为专业人士,你可以让它对您的源代表进行轮询,它会在提交后自动启动构建.
好问题.首先,您无法在一个平台上一步完成这些构建.然而,您可以做的是寻找一个构建系统,它可以轻松地进行跨平台构建,并为您自动化工具.这为您提供了一个解决方案,可以帮助您完成手动构建,并且可以完全专注于开发代码.
CMake(如前所述)为跨平台构建提供了一个很好的解决方案.简而言之,通过CMake,您可以获得目标平台的Visual Studio解决方案/项目,makefile等,然后您可以在该平台上构建.您的工作是维护CMake构建文件,CMake负责为您构建的平台生成特定的构建文件.
您提到要在"一步"中构建构建 - 这需要通过构建自动化稍微区别地解决.也就是说,使用像上面提到的Jenkins,Hudson或CruiseControl这样的持续集成(CI)系统.在您的情况下,您需要在三个不同的平台(Windows,Linux和OSX)上进行构建,这意味着您需要在每个平台上运行CI.设置这些系统时将检查源代码存储库中的更改,并在找到更改时获取源,然后使用CMake,它将为运行CI的平台生成特定于平台的构建文件,然后构建,测试,最后报告结果如何构建.