Comment utiliser clang avec mingw-w64-têtes sur windows
J'ai clang 3.9 de http://llvm.org/releases/3.9.0/LLVM-3.9.0-win32.exe
clang version 3.9.0 (branches/release_39)
Target: i686-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
Et gcc 6.2.0 (Mingw-w64)
gcc (i686-posix-dwarf-rev1, Built by MinGW-W64 project) 6.2.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Je n'ai pas de MSVC installé sur mon PC et pas de kit de développement logiciel Windows. J'ai besoin d'une fonctionnalité particulière de clang et je voulais le remplacer avec gcc, et plus particulièrement avec g++ parce que j'utilise C++.
Lorsque j'essaie de compiler simple fichier j'obtiens:
fatal error: 'string' fichier non trouvé
Signifie-t-il au courant de mes clang installation ne prend pas en charge mingw sous windows? Fondamentalement, tout ce que je veux, c'est l'utilisation d'en-têtes et les bibliothèques de mon mingw-w64 avec de l'installation. J'étais à la recherche de solution et de ne pas trouver quoi que ce soit. Je ne sais pas ce que je dois faire.
Est-il aussi dire que mon clang l'installation dépend de MSVC que je n'ai pas?
EDIT:
Dans le commentaire sur cette page: http://blog.johannesmp.com/2015/09/01/installing-clang-on-windows-pt2/
Cela ne fonctionne plus avec la dernière binaires (3.7.1, 3.8, 3.9)
de LLVM, parce que ces ont été compilé avec Visual Studio et pour
Visual Studio.Vous pouvez installer le plein de Visual Studio 2015 (environ 8 go) ou
installer "Microsoft Visual C++ Outils de génération de 2015 mise à Jour 3", qui
ne contient que les outils de ligne de commande VS plus que la norme C++
fichiers d'en-tête qui Clang besoins.
Je pense que ça explique tout. Signifie-t-il j'ai besoin de mingw construire pour qu'il fonctionne avec mingw?
OriginalL'auteur Konrad | 2016-10-05
Vous devez vous connecter pour publier un commentaire.
La bonne chose à faire, est-ce...
Ou si vous voulez 64 bits de sortie...
Clang permettra de déterminer l'emplacement des en-têtes et les bibliothèques de votre chemin. Assurez-vous que vous n'avez que la version de Mingw dans votre chemin d'accès que vous êtes mieux les cibler.
Par défaut, la version actuelle de Clang (5.0.0 dès maintenant) cible
x86_64-pc-windows-msvc
Par exemple...
-msvc
à la fin. Autant vous dire que la dernière version des cibles msvc par défaut et que c'était mon problème à l'époque. Il n'y a pas de moyen simple de simplement choisir d'utiliser gnu plutôt avec leur dernière version, donc j'ai eu 3 façons - downgrade, utilisez MSYS2 ou de le construire moi-même.Ce est comment utiliser le MinGW-w64-têtes. Si mingw est installé et dans votre chemin d'accès, le paramètre cible est la façon dont on fait grand bruit de ferraille utiliser les en-têtes, assurez-vous de choisir la bonne version de bit pour le mingw que vous avez installés.
Je viens de tester, Clang 3.9.0 a également ce comportement.
Intéressant, alors votre réponse est correcte et de façon simple!.
Tester avec clang 6.0.0 et MinGW-w64 dernière verison gcc (7.30). Le code ci-dessus fonctionne.
OriginalL'auteur burito
Après l'installation de l'ancienne version construit avec MinGW qui est 3.7.0 RC3, il a travaillé.
Vous pouvez remarquer la différence dans la version i686-pc-windows-gnu vs i686-pc-windows-msvc.
Je pense que clang 3.9 serait trop de travail, s'ils n'ont pas de casser quelque chose dans leur code source et si vous souhaitez construire vous-même. Serait agréable d'avoir de nouveau 3.9 travail avec MinGW. Je suis trop paresseux, mais pour essayer de le construire moi-même.
EDIT:
Il y a quelques paquets pour mingw trop https://github.com/Alexpux/MINGW-packages que vous pouvez installer à l'aide de MSYS2 qui semblent fournir un soutien pour clang. Il y a quelques révisions liées à 3.8 et 3.9.
Espère que cela va aider quelqu'un qui a des problèmes similaires.
OriginalL'auteur Konrad