我最近在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。
有什么办法可以解决这个问题吗?提前谢谢。
答案 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。几个月前它已经修复。您需要应用该修复程序。