target_compile_features在MSYS2中的MinGW-w64上失败



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

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

问题是,每当我用cmake -G"MSYS Makefiles"从MSYS2 shell中调用CMake时,它都会失败,并出现以下情况:

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

"GNU">

4.9.2版本。

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

如果我使用"MinGWMakefiles"生成器从MSYS2外壳之外运行CMake(我也单独安装了它(,那么生成makefile就成功了。

在MSYS2中,CMake版本为3.2.3。外部版本为3.3.0。

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

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

从mingw64_shell.bat或mingw32_shell.bat运行cmake。否则,cmake将拾取msys2 GCC,而不是本地GCC。

最新更新