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



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

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

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

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

使用Cmake,我如何编译其中一个或两个体系结构?(就像Visual Studio在IDE中的操作一样)

这不能用CMake完成。您必须生成两个独立的构建文件夹。一个用于x86 NMake内部版本,另一个用于x64 NMake版本。使用CMake也不能生成一个涵盖两种体系结构的Visual Studio项目。

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

对于CMake 3.13或更新版本,运行以下命令:

cmake -G "Visual Studio 17 2022" -A Win32 -S path_to_source -B "build32"
cmake -G "Visual Studio 17 2022" -A x64 -S path_to_source -B "build64"
cmake --build build32 --config Release
cmake --build build64 --config Release

对于CMake的早期版本,运行以下命令:

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

使用Visual Studio生成器之一的CMake生成的项目可以通过使用选项--build和生成目录从命令行生成。--config选项指定生成配置。

尝试使用CMAKE_GENERATOR_PLATFORM

例如

// x86
cmake -DCMAKE_GENERATOR_PLATFORM=x86 . 
// x64
cmake -DCMAKE_GENERATOR_PLATFORM=x64 . 

除了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-选择

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

最新更新