Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Windows下通过MSYS2安装的cmake 3.5.2;MinGW Makefiles“;发电机不见了_Windows_Cmake_Mingw - Fatal编程技术网

使用Windows下通过MSYS2安装的cmake 3.5.2;MinGW Makefiles“;发电机不见了

使用Windows下通过MSYS2安装的cmake 3.5.2;MinGW Makefiles“;发电机不见了,windows,cmake,mingw,Windows,Cmake,Mingw,我正在尝试一个helloworld测试,在Windows下使用MinGW作为编译器生成cmake。 建议使用-G标志运行cmake,如下所示: cmake -G "MinGW Makefiles" . 但是,如果我这样做,我会收到一条消息,说这不是一个已知的生成器。 实际上,运行cmake--help,在Generators部分下面列出了以下生成器: 如您所见,“MinGW makefile”未列出 如果与此相关,我已在常用文件夹C:\MinGW中安装了MinGW并在我的系统上工作。我还通

我正在尝试一个helloworld测试,在Windows下使用MinGW作为编译器生成cmake。 建议使用
-G
标志运行
cmake
,如下所示:

 cmake -G "MinGW Makefiles" .
但是,如果我这样做,我会收到一条消息,说这不是一个已知的生成器。 实际上,运行
cmake--help
,在Generators部分下面列出了以下生成器:

如您所见,“MinGW makefile”未列出

如果与此相关,我已在常用文件夹
C:\MinGW
中安装了MinGW并在我的系统上工作。我还通过WinBuilds和MSYS2安装了MinGW-w64,同样在默认安装文件夹中。 我使用的是通过MSYS2安装的
cmake版本3.5.2


为什么“MinGW Makefiles”没有列在生成器中?

只有Windows版本的CMake知道
MinGW Makefiles
MSYS Makefiles
生成器

如果您下载了MinGW/MSYS CMake版本,请尝试使用
Unix Makefiles
生成器,或者不要使用
-G
选项(自动检测编译器工具链)

如果仍然出现错误,请参阅下面的参考资料

参考资料


只有Windows版本的CMake才知道
MinGW Makefiles
MSYS Makefiles
生成器

如果您下载了MinGW/MSYS CMake版本,请尝试使用
Unix Makefiles
生成器,或者不要使用
-G
选项(自动检测编译器工具链)

如果仍然出现错误,请参阅下面的参考资料

参考资料


谢谢,这很有道理。我尝试使用该标志的原因是,否则会出现另一个错误,因为cmake无法识别我在
CMakeLists.txt
文件中指定的C编译器,即通过MSYS2获得的mingw64 gcc编译器。即使我想使用MSYS2提供的其他工具,我也可以使用从他们官方网站获得的
cmake
来构建makefiles吗?@glS您是否也像我提供的第一个参考中那样通过
pacman
安装了cmake?是的,我只从MSYS下载并安装了call
cmake
,到目前为止还没有遇到任何问题。有关CMake/MinGW/MSYS安装的基本健全性检查,请参阅。我承认我不理解你关于在
CMakeLists.txt
文件中指定GCC编译器的评论。听起来你不该这么做。你能把脚本部分也添加到你的问题中吗?是的,我通过MSYS shell提供的
pacman
安装了它。我安装了官方Windows版本的
cmake
,现在它可以在最简单的示例中使用您在本文第1点中提供的VS。这无疑是向前迈出的一步,我现在将尝试使用通过MSYS安装的mingw。再次感谢!很抱歉再次打扰你。如果您遇到了相同的问题:是否有解决方法来避免路径中出现
sh.exe
,并使用“MinGW makefile”作为生成器的问题?因为我在git发行版提供的路径中有一个
sh.exe
,如果可能的话,我有点想留在那里。您知道有什么简单的解决方案吗?@glS您是否按照说明运行了MSYS安装后步骤?这会将路径设置为MinGW,然后CMake可以检测到正确的编译器(无需在
CMakeLists.txt
中列出它们)。您收到的错误消息是:“在您的路径中找到了sh.exe,此处:……要使MinGW make正常工作,sh.exe不能在您的路径中……如果要使用UNIX shell,请使用MSYS Makefiles。”?为了避免与另一个GNU工具链发生冲突(与另一个
sh.exe
),请使用“MSYS Makefiles”(我就是这么做的)。谢谢,这很有意义。我尝试使用该标志的原因是,否则会出现另一个错误,因为cmake无法识别我在
CMakeLists.txt
文件中指定的C编译器,即通过MSYS2获得的mingw64 gcc编译器。即使我想使用MSYS2提供的其他工具,我也可以使用从他们官方网站获得的
cmake
来构建makefiles吗?@glS您是否也像我提供的第一个参考中那样通过
pacman
安装了cmake?是的,我只从MSYS下载并安装了call
cmake
,到目前为止还没有遇到任何问题。有关CMake/MinGW/MSYS安装的基本健全性检查,请参阅。我承认我不理解你关于在
CMakeLists.txt
文件中指定GCC编译器的评论。听起来你不该这么做。你能把脚本部分也添加到你的问题中吗?是的,我通过MSYS shell提供的
pacman
安装了它。我安装了官方Windows版本的
cmake
,现在它可以在最简单的示例中使用您在本文第1点中提供的VS。这无疑是向前迈出的一步,我现在将尝试使用通过MSYS安装的mingw。再次感谢!很抱歉再次打扰你。如果您遇到了相同的问题:是否有解决方法来避免路径中出现
sh.exe
,并使用“MinGW makefile”作为生成器的问题?因为我在git发行版提供的路径中有一个
sh.exe
,如果可能的话,我有点想留在那里。您知道有什么简单的解决方案吗?@glS您是否按照说明运行了MSYS安装后步骤?这会将路径设置为MinGW,然后CMake可以检测到正确的编译器(无需在
CMakeLists.txt
中列出它们)。您收到的错误消息是:“在您的路径中找到了sh.exe,此处:……要使MinGW make正常工作,sh.exe不能在您的路径中……如果要使用UNIX shell,请使用MSYS Makef