我正在尝试在Windows下使用MinGW作为编译器来进行cmake的hello world测试。
这个答案建议使用以下命令行参数来运行cmake
:-G
cmake -G "MinGW Makefiles" .
然而,如果我这样做,会收到一条消息说那不是一个已知的生成器。实际上,在运行“cmake --help”时,在“Generators”部分下列出了以下生成器:
![enter image description here](https://istack.dev59.com/V24sm.webp)
我正在尝试在Windows下使用MinGW作为编译器来进行cmake的hello world测试。
这个答案建议使用以下命令行参数来运行cmake
:-G
cmake -G "MinGW Makefiles" .
MinGW Makefiles
和 MSYS Makefiles
生成器。如果您已经下载了 MinGW/MSYS 版本的 CMake,请尝试使用 Unix Makefiles
生成器或不使用 -G
选项(自动检测编译器工具链)。如果仍然出现错误,请参阅下面的参考文献。
参考文献
CMakeLists.txt
文件中指定的mingw64 gcc编译器(通过MSYS2获取),从而导致另一个错误。我可以使用官方网站获得的“cmake”构建makefiles吗?即使我想使用MSYS2提供的其他工具? - glSpacman
安装了 CMake?是的,我只是下载并安装了官方的Windows CMake版本,从 MSYS 中调用cmake
,目前还没有遇到任何问题。有关您的 CMake/MinGW/MSYS 安装的基本健全性检查,请参见此处。而且,我承认我不理解您在CMakeLists.txt
文件中指定 GCC 编译器的评论。听起来像是您不应该这样做的事情。您能否将该脚本部分添加到您的问题中? - Florianpacman
安装了它。我安装了官方的Windows版本的cmake
,现在它可以在你在链接答案中提供的最简单的VS示例中工作了。这绝对是一个进步,我现在会尝试让它使用通过MSYS安装的mingw。再次感谢! - glSPATH
中存在sh.exe
并使用"MinGW Makefiles"作为生成器的方法呢?因为我在PATH
中有一个由Git分发提供的sh.exe
,我希望尽可能保留它。您是否知道任何简单的解决方案吗? - glSCMakeLists.txt
中列出它们)。您收到的错误消息是:“在您的PATH中找到了sh.exe,位置在:...为了使MinGW make正常工作,sh.exe不应该在您的路径中。...如果您想使用UNIX shell,则使用MSYS Makefiles。”因此,为了避免与另一个GNU工具链(而不是另一个sh.exe
)发生冲突,请使用“MSYS Makefiles”(这就是我所做的)。 - Florian