cmake MSYS Makefiles生成器丢失

Sco*_*ult 9 cmake msys

我通过pacman安装了cmake 3.2.3.当我尝试从msys64 shell使用它时出错:

$ cmake -G "MSYS Makefiles" ..
CMake Error: Could not create named generator MSYS Makefiles
Run Code Online (Sandbox Code Playgroud)

cmake --help不会将其列为可用的生成器.

我确实看到/usr/share/cmake-3.2.3/Modules/Platform中有一个MSYS.cmake.

我错过了什么?

Eva*_*van 12

cmake我认为您需要安装mingw-w64-i686-cmake(或64位版本mingw-w64-x86_64-cmake),而不是安装软件包.


Flo*_*ian 2

如果您使用 MinGW 在 Linux 上编译本机 Windows 二进制文件

MinGW生成MSYS器仅在基于 Windows 的发行版上可用。请#ifdef参阅cmake.cxx

#if defined(_WIN32) && !defined(__CYGWIN__)
Run Code Online (Sandbox Code Playgroud)

如果您要进行交叉编译,请使用可用的 MinGW 工具链之一。请参阅CMake wiki 中的“如何使用 MinGW 交叉编译 Windows 软件”一章。

如果您使用 MinGW 在 Windows 上编译 Windows 二进制文件

在我的 Windows PC 上,我只有一个 CMake 安装(将 CMake 目录添加到 PATH 环境的普通 MSI Windows 安装程序),它可以在标准 CMD shell 和我的 MSYS shell 中运行。

因此,在这种情况下,无需安装特殊的 MinGW 版本的 CMake(例如 CygWin)。

但我最近多次使用 MinGW-w64 从源代码重建 CMake,以测试一些性能优化,cmake.exe但它并不能开箱即用。为了解决链接器错误,我按照此处-DCMAKE_EXE_LINKER_FLAGS="-Wl,--allow-multiple-definition"推荐的方式添加了内容,结果仍然支持“MSYS Makefiles”生成器。cmake.exe

所以是的,正如您所评论的, pacman 构建很可能存在问题。