我想使用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默认行为的正确环境变量吗?如果是,我应该使用什么值?
我如何使CMake始终保持这种行为,而无需添加-G“ MinGW Makefiles”标志?
您不能,到目前为止,尚未在任何版本的CMake中发布。 CMake在开始评估任何CMakeLists.txt
文件之前会选择一个生成器。默认情况下,它基于运行时平台和可用工具集选择生成器,并且命令行选项是当前可用的影响或覆盖CMake生成器选择的唯一方法。
在评论中,@ Tsyvarev指出an open CMake issue report要求的功能与您要求的完全相同。关联的评论线程提供了更多详细信息,最近的评论是在今年早些时候。我猜想最终CMake会增加对通过环境变量指定生成器的支持,但是现在,您的-G
选项是唯一可用的选择。如果您想保存击键并减少输入错误的风险,可以考虑编写脚本。