【发布时间】:2011-03-05 13:47:18
【问题描述】:
例如我应该如何同时构建发布和调试版本?我猜答案是利用缓存变量和它们的某种“集合”。 从缓存参数中获取配置参数的常用方法,不是吗?如果答案是肯定的,我应该如何以最好的方式使用它们的几个“集合”? 非常感谢!
【问题讨论】:
标签: cmake
例如我应该如何同时构建发布和调试版本?我猜答案是利用缓存变量和它们的某种“集合”。 从缓存参数中获取配置参数的常用方法,不是吗?如果答案是肯定的,我应该如何以最好的方式使用它们的几个“集合”? 非常感谢!
【问题讨论】:
标签: cmake
您没有指定您正在谈论的平台。基于 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 项目还探索了使用库名称修饰来区分在同一构建树中构建所有配置。如果您必须在同一个构建树中构建所有配置,这可能值得一看。
【讨论】:
(对于谷歌同事)
注意不要混淆构建类型和构建配置。
如果您真的是指“构建类型”,例如 debug 和 release 并且想要同时构建它们,那么 Cmake FAQ 会给出答案:How can I build multiple modes without switching
基本上它涉及使用多个源外构建。
【讨论】: