C++跨平台构建自动化
C++ cross platform build automation
我有一个跨平台C++项目,该项目以Linux、OSX和Windows为目标并成功编译。我使用GNUMake来处理所有平台上的构建,gcc用于在Linux下编译;OSX和cl.exe在windows上的Cygwin下编译。我目前的工作流程包括在OSX下进行编码,然后在每个单独的平台上进行构建,以测试代码的可移植性。这个过程有点耗时,我想知道是否有可能一步在所有平台上自动构建?
如果我正确理解了OP,问题不是替换make,而是如何在每个平台上启动构建?
我建议使用http://jenkins-ci.org/-它是java,可以在Windows、Linux、OSX等平台上运行。它可以配置为同时启动构建作业,以便在任何时候都可以同时启动每个平台。
詹金斯的学习曲线并不糟糕,但可能需要大约3-4个小时才能做好工作,一旦你做到了,一切都很顺利。
如果你想成为专业人士,你可以让它轮询你的源回购,它会在提交后自动启动构建。
好问题。首先,不可能在一个平台上一步完成这些构建。然而,您所能做的是寻找一个构建系统,它可以轻松地进行跨平台构建和一个为您自动化的工具这为您提供了一个解决方案,使您不再进行手动构建,您可以完全专注于开发代码。
CMake(如前所述(为跨平台构建提供了一个很好的解决方案。简言之,通过CMake,您可以获得例如目标平台的Visual Studio解决方案/项目、makefile等,然后使用它们在特定平台上构建。您的工作是维护CMake构建文件,CMake负责为您构建的平台生成特定的构建文件。
您提到在"一步"中构建构建——这需要通过构建自动化来稍微不同地解决。也就是说,使用连续集成(CI(系统,如上面提到的Jenkins、Hudson或CruiseControl。在您的情况下,您需要在三个不同的平台(Windows、Linux和OSX(上进行构建,这意味着您需要在每个平台上运行一个CI。这些系统在设置时将检查源代码存储库中的更改,当发现更改时,将提取源代码,然后使用CMake为CI运行的平台生成特定于平台的构建文件,然后构建、测试并最终报告构建结果。
这听起来像是CMake的工作。
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- 自动化c++构建
- Visual Studio -如何自动化构建过程
- C++跨平台构建自动化
- 采用Bamboo或TeamCity作为原生WindowsC++构建自动化/CI服务器