2015-08-01 2 views
0

Недавно я установил MSYS2 в Windows, а также инструментальную цепочку MinGW-w64 и CMake. В частности, я использовал следующие пакеты:target_compile_features не работает на MinGW-w64 в MSYS2

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

Проблема в том, когда я призываю CMake из оболочки MSYS2 с cmake -G"MSYS Makefiles", он выдает следующее:

target_compile_features no kn собственные функции для CXX компилятора

"GNU"

версии 4.9.2.

Линия в CMakeLists.txt, которая генерирует ошибку, такова: target_compile_features(myproject PUBLIC cxx_decltype).

Если я запускаю CMake снаружи оболочки MSYS2 (я также устанавливаю его отдельно) с генератором «MinGW Makefiles», генерация make-файла преуспевает.

Внутри MSYS2 версия CMake 3.2.3. Версия снаружи - 3.3.0.

Есть ли способ решить эту проблему? Заранее спасибо.

+1

Я нашел этот bugreport на CMake: https://public.kitware.com/Bug/view.php?id=15443. Это было решено несколько месяцев назад. Убедитесь, что у вас есть патч (http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f94727a9). – Tsyvarev

+0

@ Цыварев, это сработало! Если вы представите его в качестве ответа, я помечаю его как принятый. Огромное спасибо! –

ответ

0

Была ошибка в отношении взаимодействия механизма compile features в CMake 3.3 с gcc 4.8+: https://public.kitware.com/Bug/view.php?id=15443. Это было исправлено несколько месяцев назад. Вам нужно, чтобы это исправление было применено.

+0

Отлично. Я обновлю CMake PKGBUILD до 3.3.0 и посмотрю, могу ли я заставить Alexey загружать новые бинарные пакеты. –

0

Запустить cmake из mingw64_shell.bat или mingw32_shell.bat. В противном случае CMake выберет msys2 GCC, а не родную.

+0

Да, я уже это делаю ... –

Смежные вопросы