代码之家  ›  专栏  ›  技术社区  ›  101010

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

  •  107
  • 101010  · 技术社区  · 11 年前

    让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中的操作方式)

    3 回复  |  直到 11 年前
        1
  •  195
  •   sakra    3 年前

    这不能用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
    

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

        2
  •  76
  •   Zam    7 年前

    尝试使用 CMAKE_GENERATOR_PLATFORM

    例如

    // x86
    cmake -DCMAKE_GENERATOR_PLATFORM=x86 . 
    
    // x64
    cmake -DCMAKE_GENERATOR_PLATFORM=x64 . 
    
        3
  •  36
  •   user7610    6 年前

    此外 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.