【问题标题】:target_compile_features fails on MinGW-w64 in MSYS2target_compile_features 在 MSYS2 中的 MinGW-w64 上失败
【发布时间】:2015-10-24 02:58:39
【问题描述】:

我最近在 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)

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

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

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 太棒了。我会将我们的 CMake PKGBUILD 更新到 3.3.0,看看我是否可以让 Alexey 上传新的二进制包。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 2013-04-06
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多