E.g。我应该如何同时构建发布和调试版本?我想答案是利用缓存变量和它们的某种“集合”。 从缓存参数中获取配置参数是否常见?是不是?如果答案是肯定的,我应该如何以最佳方式使用它们的几个“集合”? 非常感谢!
答案 0 :(得分:11)
您没有指定您正在谈论的平台。基于Makefile的生成器一次只构建一个配置,构建多个配置的常规方法是使用单独的构建树,例如,一个用于英特尔上的64位Linux,一个用于32位Windows等。大多数CMake项目建议使用源代码构建,并假设您正确编写了CMakeLists文件,您可以拥有〜/ src / YourProject和〜/ build / YourProject -Release,〜/ build / YourProject-Debug。
这是建议的方法,假设您的源树中没有任何CMakeCache.txt等。然后,您可以在调试目录中运行cmake -DCMAKE_BUILD_TYPE:STRING = Debug~ / src / YourProject,类似于发行版。这样做的好处是可以将相关项目指向适当的配置。
Boost CMake项目还探索了使用库名称修改来区分同一构建树中的所有配置。如果您必须在同一构建树中构建所有配置,这可能值得一看。
答案 1 :(得分:6)
(对于谷歌同行)
小心不要混淆构建类型和构建配置。
如果您的意思是“构建类型”,例如 debug 和 release ,并且想要同时构建它们,那么Cmake FAQ会给出答案:{{3 }}
基本上它涉及使用多个源外构建。