在MSYS2中的minGW-w64上,target_compile_features失败

时间:2015-08-01 14:33:31

标签: windows c++11 cmake mingw-w64 msys2

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

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

麻烦的是,无论何时我在MSYS2 shell中使用cmake -G"MSYS Makefiles"调用CMake,它都会失败并显示以下内容:

  

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

     

" GNU"

     

版本4.9.2。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

有关CMake 3.3中printTriangle (s-1);机制与gcc 4.8+的交互存在错误: https://public.kitware.com/Bug/view.php?id=15443。几个月前它已经修复。您需要应用该修复程序。