我已经通过pacman安装了cmake 3.2.3。当我尝试在msys64 shell中使用它时,出现错误:
$ cmake -G "MSYS Makefiles" ..
CMake Error: Could not create named generator MSYS Makefiles
cmake --help没有将其列为可用生成器。
我看到在/usr/share/cmake-3.2.3/Modules/Platform中有一个MSYS.cmake。
我错过了什么?
我认为你需要安装mingw-w64-i686-cmake
(或者64位版本的mingw-w64-x86_64-cmake
),而不是安装cmake
包。
当我在MSYS shell中尝试运行cmake时,收到了完全相同的消息。请改用MinGW Shell(例如MinGW-w64 Win64 Shell)。
如果你在Linux上使用MinGW编译本地的Windows二进制文件
MinGW
和MSYS
生成器仅适用于基于Windows的发行版。请参见cmake.cxx中的#ifdef
:
#if defined(_WIN32) && !defined(__CYGWIN__)
如果您正在进行交叉编译,请使用可用的MinGW工具链之一。请参见CMake维基中的“如何使用MinGW交叉编译Windows软件”章节,例如:https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/cross_compiling/Mingw。-DCMAKE_EXE_LINKER_FLAGS="-Wl,--allow-multiple-definition"
,生成的cmake.exe
仍支持“MSYS Makefiles”生成器。/usr/share/cmake-3.2.3
表明您正在使用/运行Linux发行版。您在哪个主机操作系统上执行CMake? - Florian我猜测 pacman 构建有问题,所以我通过从 cmake.org 下载 msi 安装程序并安装 Windows 版本的 CMake 来解决了这个问题。
${MINGW_PREFIX}/bin/cmake
而不是只运行cmake
才能使其工作。 - Michaël Witrantapt-cyg
找到它们。 - Hashim Aziz