target_compile_features 在 MSYS2 中的 MinGW-w64 上失败

target_compile_features fails on MinGW-w64 in MSYS2

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

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

target_compile_features no known features for CXX compiler

"GNU"

version 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.

有什么办法可以解决这个问题吗?提前致谢。

运行 从 mingw64_shell.bat 或 mingw32_shell.bat 生成。否则 CMake 将选择 msys2 GCC 而不是本地 GCC。

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