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

Posted

技术标签:

【中文标题】如何使用 CMAKE 从命令行在 Windows 上构建 x86 和/或 x64?【英文标题】:How to build x86 and/or x64 on Windows from command line with CMAKE? 【发布时间】:2015-04-05 16:14:59 【问题描述】:

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

    为 x86 启动 Visual Studio 命令提示符 运行cmake:cmake -G "NMake Makefiles" \path_to_source\ nmake

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

    为 x64 启动 Visual Studio 命令提示符 运行cmake:cmake -G "NMake Makefiles" \path_to_source\ nmake

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

【问题讨论】:

这里相同,但似乎有一个解决方案:zeroset.mnim.org/2015/07/15/…(并且不关闭提示,并使用nmake 如果您来到这里是因为您在 Windows 上使用-G"Ninja" 作为生成器;构建 32bit 使用 "x86 Native Tools Command Prompt" 构建 64bit 使用 "x64 Native Tools Command Prompt",它将使用正确的库、编译器和链接器。跨度> 【参考方案1】:

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

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

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

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

对于早期版本的 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

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

【讨论】:

有没有办法使用一个命令提示符 + 两个构建目录,并且无需退出并启动 x86 提示符,然后是 x64 提示符,就可以创建两种架构?【参考方案2】:

尝试使用CMAKE_GENERATOR_PLATFORM

例如

// x86
cmake -DCMAKE_GENERATOR_PLATFORM=x86 . 

// x64
cmake -DCMAKE_GENERATOR_PLATFORM=x64 . 

【讨论】:

简单便携! 在 Visual Studio 2019 中使用 Win32Win64 而不是 x86x64 @maidamai 我相信是Win32x64 VS 16 2019 ***.com/a/58548724/3554391【参考方案3】:

除了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.

【讨论】:

以上是关于如何使用 CMAKE 从命令行在 Windows 上构建 x86 和/或 x64?的主要内容,如果未能解决你的问题,请参考以下文章

使用命令行在 Visual Studio 2019 中打开 CMake 项目

如何从命令行在 Windows 上运行 .class 文件?

如何使用命令行在 Windows Mobile 模拟器中重建 .net CF 应用程序和部署

如何从命令行在 Microsoft Edge 中打开 URL?

如何使用特定用户的命令行在 Windows 中查看文件夹权限?

如何从命令行在 iPhone 上启动 OCUnit 测试