C ++跨平台构建自动化

我有一个跨平台的C ++项目,目标是在Linux,OSX和Windows上成功编译。 我使用GNU Make来处理所有平台上的构建,在Linux和OSX下编译gcc,在Windows下使用cl.exe编译Cygwin。 我目前的工作流程包括在OSX下进行编码,然后在每个平台上构建测试代码可移植性。 这个过程有点费时,我想知道是否可以在一个步骤中自动构建所有平台?


如果我正确理解OP,问题不在于取代make,而是如何在每个平台上启动构建?

我建议使用http://jenkins-ci.org/ - 它是Java,可以在Windows,Linux,OSX等上运行。它可以配置为同时启动构建作业,以便任何时候您想要构建每个平台可以同时启动。

詹金斯的学习曲线并不可怕,但一旦你做到了,它可能需要大约3-4小时的时间才能正常工作,但是它的顺利航行。

如果你想成为专业版,你可以让它轮询你的源代码回购,它会在提交后自动启动构建。


这听起来像是CMake的工作。


好问题。 首先, 你无法在一个平台上一步完成这些构建 。 然而,你可以做的是寻找是一个构建系统,它可以很容易地进行跨平台构建和一个工具来自动化你的事情。 这为您提供了一个解决方案,使您无需进行手动构建,并且可以全神贯注地开发代码。

CMake (如前所述) 为跨平台构建提供了一个很好的解决方案 。 简而言之,通过CMake,您可以获得例如Visual Studio解决方案/项目,makefile等目标平台,然后您可以使用该平台构建特定平台。 您的工作是维护CMake构建文件,并且CMake负责为您构建的平台生成特定的构建文件。

你提到建立“一步”构建 - 这需要通过构建自动化稍微不同来解决。 也就是说,使用像Jenkins,Hudson或CruiseControl这样的持续集成(CI)系统。 在你的情况下,你需要建立在三个不同的平台上(Windows,Linux和OSX),这意味着你需要在每个平台上运行一个CI。 这些系统在设置时会检查源代码库中的更改,并在发现更改时提取源代码,然后使用CMake为源代码运行的平台生成特定于平台的构建文件,然后构建,测试,最后报告结果如何构建。

链接地址: http://www.djcxy.com/p/54547.html

上一篇: C++ cross platform build automation

下一篇: C++ cross platform code