Windows上的Cmake和MinGW编译,不需要-G“ MinGW Makefiles”标志

问题描述 投票:1回答:1

我想使用CMake和MinGW从Windows PowerShell命令行构建我的C ++应用程序。

当我以“正常方式”执行这些命令时:

mkdir build
cd build
cmake ..
make

CMake选择Visual Studio作为默认编译器,并且不会为我生成任何Makefile。

我希望CMake使用MinGW作为默认编译器,并生成Makefile。它完全按照我运行这些命令时所需的方式工作,添加-G“ MinGW Makefiles”标志:

mkdir build
cd build
cmake .. -G "MinGW Makefiles"
make

我如何使CMake始终保持这种行为,而无需添加-G“ MinGW Makefiles”标志?

我已经尝试在Windows中设置CMAKE_GENERATOR环境变量,并将其指向“ path\to\mingw\bin”,“ path\to\mingw\bin\mingw32-make.exe”以及读取“ MinGW Makefile”的字符串。

[在运行refreshenv之后尝试再次运行cmake ..后,这些都不对我有用。

有人知道这是否是用于指定CMake默认行为的正确环境变量吗?如果是,我应该使用什么值?

c++ makefile cmake
1个回答
0
投票

我如何使CMake始终保持这种行为,而无需添加-G“ MinGW Makefiles”标志?

您不能,到目前为止,尚未在任何版本的CMake中发布。 CMake在开始评估任何CMakeLists.txt文件之前会选择一个生成器。默认情况下,它基于运行时平台和可用工具集选择生成器,并且命令行选项是当前可用的影响或覆盖CMake生成器选择的唯一方法。

在评论中,@ Tsyvarev指出an open CMake issue report要求的功能与您要求的完全相同。关联的评论线程提供了更多详细信息,最近的评论是在今年早些时候。我猜想最终CMake会增加对通过环境变量指定生成器的支持,但是现在,您的-G选项是唯一可用的选择。如果您想保存击键并减少输入错误的风险,可以考虑编写脚本。

© www.soinside.com 2019 - 2024. All rights reserved.