【问题标题】:How to build several configurations at once with CMake?如何使用 CMake 一次构建多个配置?
【发布时间】:2011-03-05 13:47:18
【问题描述】:

例如我应该如何同时构建发布和调试版本?我猜答案是利用缓存变量和它们的某种“集合”。 从缓存参数中获取配置参数的常用方法,不是吗?如果答案是肯定的,我应该如何以最好的方式使用它们的几个“集合”? 非常感谢!

【问题讨论】:

    标签: cmake


    【解决方案1】:

    您没有指定您正在谈论的平台。基于 Makefiles 的生成器一次只会构建一个配置,构建多个配置的正常方法是使用单独的构建树,例如一个用于 Intel 上的 64 位 Linux,一个用于 32 位 Windows 等。大多数 CMake 项目建议不要使用源代码构建,并且假设您正确编写了 CMakeLists 文件,您可以拥有 ~/src/YourProject 和 ~/build/YourProject -发布,~/build/YourProject-Debug。

    这是建议的方法,假设您的源代码树中没有任何 CMakeCache.txt 等。然后,您可以在调试目录中运行 cmake -DCMAKE_BUILD_TYPE:STRING=Debug ~/src/YourProject,对于发行版类似。这样做的好处是您可以将依赖项目指向适当的配置。

    Boost CMake 项目还探索了使用库名称修饰来区分在同一构建树中构建所有配置。如果您必须在同一个构建树中构建所有配置,这可能值得一看。

    【讨论】:

      【解决方案2】:

      (对于谷歌同事)

      注意不要混淆构建类型构建配置

      如果您真的是指“构建类型”,例如 debugrelease 并且想要同时构建它们,那么 Cmake FAQ 会给出答案:How can I build multiple modes without switching

      基本上它涉及使用多个源外构建。

      【讨论】:

      • “构建类型”和“构建配置”有什么区别?
      • "types" aka "modes" 和 "configurations" 基本上是为不同工具创建调试和发布版本的方法。配置仅适用于支持它的工具,例如 Visual Studio。模式通常也用于 Debug 和 Release 风格的编译,但是 cmake 在单独的构建文件夹中为 make 实现它们,因为 make 没有与 VS 相同的配置支持风格,即从配置下拉列表中选择构建类型/配置在 GUI 中。
      猜你喜欢
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      相关资源
      最近更新 更多