如何使用CMAKE从命令行在Windows上构建x86和/或x64?

时间:2015-02-05 17:22:42

标签: c visual-studio cmake cross-compiling x86-64

使用Visual Studio让cmake在Windows上构建x86的一种方法是:

  1. 启动x86的Visual Studio命令提示符
  2. 运行cmake:cmake -G "NMake Makefiles" \path_to_source\
  3. NMAKE
  4. 使用Visual Studio让cmake在Windows上构建x64的一种方法是:

    1. 启动x64
    2. 的Visual Studio命令提示符
    3. 运行cmake:cmake -G "NMake Makefiles" \path_to_source\
    4. NMAKE
    5. 使用Cmake,如何编译其中一种或两种架构? (就像Visual Studio在IDE中所做的那样)

3 个答案:

答案 0 :(得分:79)

使用CMake无法做到这一点。您必须生成两个单独的构建文件夹。一个用于x86 NMake构建,另一个用于x64 NMake构建。您无法使用CMake生成覆盖这两种体系结构的单个Visual Studio项目。

要在不启动Visual Studio命令提示符的情况下从命令行为32位和64位构建Visual Studio项目,请使用常规Visual Studio生成器:

mkdir build32 & pushd build32
cmake -G "Visual Studio 12 2013" \path_to_source\
popd
mkdir build64 & pushd build64
cmake -G "Visual Studio 12 2013 Win64" \path_to_source\
popd
cmake --build build32 --config Release
cmake --build build64 --config Release

使用选项--build后跟构建目录,可以从命令行构建使用其中一个Visual Studio生成器的CMake生成的项目。 --config选项指定构建配置。

答案 1 :(得分:16)

尝试使用CMAKE_GENERATOR_PLATFORM

例如

// x86
cmake -DCMAKE_GENERATOR_PLATFORM=x86 . 

// x64
cmake -DCMAKE_GENERATOR_PLATFORM=x64 . 

答案 2 :(得分:1)

CMAKE_GENERATOR_PLATFORM变量旁边,还有-A开关

cmake -G "Visual Studio 16 2019" -A Win32
cmake -G "Visual Studio 16 2019" -A x64

https://cmake.org/cmake/help/v3.16/generator/Visual%20Studio%2016%202019.html#platform-selection

  -A <platform-name>           = Specify platform name if supported by
                                 generator.