How to build x86 and/or x64 on Windows from command line with CMAKE?

后端 未结 3 1292
后悔当初
后悔当初 2020-12-07 08:42

One way to get cmake to build x86 on Windows with Visual Studio is like so:

  1. Start Visual Studio Command prompt for x86
  2. Run cmake: cmake -G \"NMa
相关标签:
3条回答
  • 2020-12-07 08:51

    Besides CMAKE_GENERATOR_PLATFORM variable, there is also the -A switch

    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.
    
    0 讨论(0)
  • 2020-12-07 09:04

    This cannot be done with CMake. You have to generate two separate build folders. One for the x86 NMake build and one for the x64 NMake build. You cannot generate a single Visual Studio project covering both architectures with CMake, either.

    To build Visual Studio projects from the command line for both 32-bit and 64-bit without starting a Visual Studio command prompt, use the regular Visual Studio generators.

    For CMake 3.13 or newer, run the following commands:

    cmake -G "Visual Studio 16 2019" -A Win32 -S \path_to_source\ -B "build32"
    cmake -G "Visual Studio 16 2019" -A x64 -S \path_to_source\ -B "build64"
    cmake --build build32 --config Release
    cmake --build build64 --config Release
    

    For earlier versions of CMake, run the following commands:

    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 generated projects that use one of the Visual Studio generators can be built from the command line with using the option --build followed by the build directory. The --config options specifies the build configuration.

    0 讨论(0)
  • 2020-12-07 09:10

    try use CMAKE_GENERATOR_PLATFORM

    e.g.

    // x86
    cmake -DCMAKE_GENERATOR_PLATFORM=x86 . 
    
    // x64
    cmake -DCMAKE_GENERATOR_PLATFORM=x64 . 
    
    0 讨论(0)
提交回复
热议问题