Sor*_*erg 6 c++ makefile cmake
我想使用 CMake 和 MinGW 从 Windows PowerShell 命令行构建我的 C++ 应用程序。
当我以“正常方式”执行此操作时,使用以下命令:
mkdir build
cd build
cmake ..
make
Run Code Online (Sandbox Code Playgroud)
CMake 选择 Visual Studio 作为默认编译器,并且不会为我生成任何 Makefile。
我希望 CMake 使用 MinGW 作为默认编译器,并生成 Makefile。 当我运行这些命令时,它完全按照我想要的方式工作,添加 -G "MinGW Makefiles" 标志:
mkdir build
cd build
cmake .. -G "MinGW Makefiles"
make
Run Code Online (Sandbox Code Playgroud)
如何在不添加 -G“MinGW Makefiles”标志的情况下让 CMake 一直以这种方式运行?
我试过CMAKE_GENERATOR在 Windows 中设置一个环境变量,并将它指向“ path\to\mingw\bin”、“ path\to\mingw\bin\mingw32-make.exe”,以及一个读取“ MinGW Makefile”的字符串。
在跑步refreshenv然后cmake ..再次尝试跑步后,这些都不适合我。
有人知道这是否是用于指定 CMake 的默认行为的正确环境变量吗?如果是,我应该使用什么值?
如何在不添加 -G“MinGW Makefiles”标志的情况下让 CMake 一直以这种方式运行?
你不能,在迄今为止发布的任何版本的 CMake 中都不能。CMake 在开始评估任何生成器之前选择一个生成器CMakeLists.txt文件。默认情况下,它根据运行时平台和可用工具集选择生成器,命令行选项是目前影响或覆盖 CMake 选择生成器的唯一方法。
在评论中,@Tsyvarev 指出了一个开放的 CMake 问题报告,要求提供与您要求的功能完全相同的功能。相关的评论线程提供了更多细节,最后一条评论是在今年早些时候。我猜想最终 CMake 将添加对通过环境变量指定生成器的支持,但就目前而言,您的-G选择是唯一可用的选择。如果您想保存击键并降低输入错误的风险,您可以考虑编写脚本。
小智 4
我知道这已经晚了。但万一有人来到这里并发现这个答案有用,
你所要做的就是创建一个function 像这样的东西:
function gcmake {cmake .. -G "MinGW Makefiles"}
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地输入
mkdir build
cd build
gcmake ..
make
Run Code Online (Sandbox Code Playgroud)
提示:您可以将此功能添加到您的个人资料中,以便将其保存到任何新会话中。你可以遵循这个很好的指南
| 归档时间: |
|
| 查看次数: |
11535 次 |
| 最近记录: |