2015-08-01 1 views
0

J'ai récemment installé MSYS2 sur Windows, avec la chaîne d'outils MinGW-w64 et CMake. Plus précisément, je les packages suivants:target_compile_features échoue sur MinGW-w64 dans MSYS2

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

Le problème est, chaque fois que j'invoque CMake à l'intérieur de la coque MSYS2 avec cmake -G"MSYS Makefiles", il échoue avec les éléments suivants:

target_compile_features aucun kn caractéristiques propres pour le compilateur CXX

"GNU"

version 4.9.2.

La ligne en CMakeLists.txt qui génère l'erreur est la suivante: target_compile_features(myproject PUBLIC cxx_decltype).

Si j'exécute CMake de l'extérieur du shell MSYS2 (je l'ai également installé séparément) avec le générateur "MinGW Makefiles", la génération du fichier makefile réussit.

Dans MSYS2, la version de CMake est 3.2.3. La version extérieure est 3.3.0.

Est-il possible de résoudre ce problème? Merci d'avance.

+1

J'ai trouvé ce rapport de bug sur CMake: https://public.kitware.com/Bug/view.php?id=15443. Il a été résolu il y a plusieurs mois. Vérifiez que vous avez appliqué le correctif (http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f94727a9). – Tsyvarev

+0

@Tsyvarev, ça a marché! Si vous le soumettez comme réponse, je le marquerai comme accepté. Merci beaucoup! –

Répondre

0

Il y avait un bug sur l'interaction du mécanisme compile features dans CMake 3.3 avec gcc 4.8+: https://public.kitware.com/Bug/view.php?id=15443. Il a été corrigé il y a plusieurs mois. Vous avez besoin que cette correction soit appliquée.

+0

Super. Je vais mettre à jour notre CMake PKGBUILD à 3.3.0 et voir si je peux obtenir Alexey pour télécharger de nouveaux paquets binaires. –

0

Exécutez cmake depuis mingw64_shell.bat ou mingw32_shell.bat. CMake va sinon ramasser msys2 GCC plutôt qu'un natif.

+0

Oui, je le fais déjà ... –