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

why specifying architecture needs to be done in cmake for multi-configuration generators

我知道 CMAKE_BUILD_TYPE 仅适用于单配置生成器,如 Unix Makefile。还有像 Visual Studio 或 Xcode 这样的多配置生成器,其中 CMAKE_BUILD_TYPE 不起作用。 (参见 this and question for further info). I've generated Visual Studio 2013 x86 project with cmake-gui for libharu 并且在 Visual Studio 中无法从 win32 切换到 x64。我想知道为什么在多配置中需要在 cmake 中指定架构(x86 或 x64)?为什么直接在 Visual Studio 中是不可能的?是否有一些限制或好处或我应该注意的事情?

谢谢

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

所以虽然这是一个 cmake 限制,但它也是有意的。

这个回答也提到了这个: