0

我最近在 Windows 上安装了 MSYS2,以及 MinGW-w64 工具链和 CMake。具体来说,我使用了以下软件包:

  • mingw-w64-i686-gcc
  • mingw-w64-i686-cmake
  • make

麻烦的是,每当我从 MSYS2 shell 中调用 CMake 时cmake -G"MSYS Makefiles",它​​都会失败并显示以下内容:

target_compile_features 没有 CXX 编译器的已知功能

“GNU”

版本 4.9.2。

CMakeLists.txt 中产生错误的行是这样的:target_compile_features(myproject PUBLIC cxx_decltype)

如果我使用“MinGW Makefiles”生成器从 MSYS2 shell 外部运行 CMake(我也单独安装了它),则 makefile 生成成功。

在 MSYS2 中,CMake 版本是 3.2.3。外面的版本是3.3.0。

有没有办法解决这个问题?提前致谢。

4

2 回答 2

0

compile featuresCMake 3.3 中的机制与 gcc 4.8+ 的交互存在错误: https ://public.kitware.com/Bug/view.php?id=15443 。它已在几个月前修复。您需要应用该修复程序。

于 2015-08-01T20:35:40.343 回答
0

从 mingw64_shell.bat 或 mingw32_shell.bat 运行 cmake。否则 CMake 将拾取 msys2 GCC 而不是原生的。

于 2015-08-01T18:27:20.397 回答