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

010*_*101 54 c x86-64 cmake cross-compiling visual-studio

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

  1. 启动x86的Visual Studio命令提示符
  2. 运行cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. NMAKE

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

  1. 启动x64的Visual Studio命令提示符
  2. 运行cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. NMAKE

使用Cmake,我如何编译其中一个或两个架构?(就像Visual Studio在IDE中的表现一样)

sak*_*kra 89

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

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

mkdir build32 & pushd build32
cmake -G "Visual Studio 15 2017" \path_to_source\
popd
mkdir build64 & pushd build64
cmake -G "Visual Studio 15 2017 Win64" \path_to_source\
popd
cmake --build build32 --config Release
cmake --build build64 --config Release
Run Code Online (Sandbox Code Playgroud)

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


Zam*_*Zam 38

试试用 CMAKE_GENERATOR_PLATFORM

例如

// x86
cmake -DCMAKE_GENERATOR_PLATFORM=x86 . 

// x64
cmake -DCMAKE_GENERATOR_PLATFORM=x64 . 
Run Code Online (Sandbox Code Playgroud)

  • @maidamai 我相信 VS 16 2019 是 `Win32` 和 `x64` /sf/answers/4098410711/ (7认同)

use*_*610 19

除了CMAKE_GENERATOR_PLATFORM变量,还有-A开关

cmake -G "Visual Studio 16 2019" -A Win32
cmake -G "Visual Studio 16 2019" -A x64
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)