为什么需要在cmake中为多配置生成器指定体系结构

时间:2016-09-09 09:14:13

标签: cmake cpu-architecture cmake-gui multi-configuration

我知道CMAKE_BUILD_TYPE仅适用于Unix Makefile等单配置生成器。还有像Visual Studio或Xcode这样的多配置生成器,其中CMAKE_BUILD_TYPE不起作用。 (有关详细信息,请参阅thisthis问题)。我使用cmake-gui为libharu生成了Visual Studio 2013 x86项目,并且无法在Visual Studio中从win32切换到x64。我想知道为什么在多配置中需要在cmake中指定架构(x86或x64)?为什么直接在Visual Studio中无法实现?是否有一些限制或好处或我应该注意的事情?

由于

1 个答案:

答案 0 :(得分:0)

因为在32到64位之间的这种切换在所有环境中都不可用,所以cmake遵循使用源外构建并将每个编译器放在它们自己的目录中的原则。因此,32位和64位构建可视为不同的编译环境,因此它们各自生成自己的文件夹。

因此,虽然这是一个cmake限制,但它也是故意的。

这个答案也提到了这一点:https://stackoverflow.com/a/5359191/152359