J'ai installé Clang en utilisant apt-get dans Ubuntu, et je peux réussir à compiler des fichiers C en l'utilisant. Cependant, je ne sais pas comment compiler C ++ à travers lui. Que dois-je faire pour compiler C ++?
97
La commande clang
est pour C et la commande clang++
est pour C ++.
Aussi, pour la postérité - Clang (comme GCC) accepte le -x
commutateur pour définir la langue des fichiers d'entrée, par exemple,
$ clang -x c++ some_random_file.txt
Ce fil de discussion de liste de diffusion explique la différence entre clang
et clang++
bien: Différence entre clang et clang ++
#include <iostream>
. L'indicateur -lstdc ++ a résolu ce problème.clang.exe
, puis copie cet exécutable dansclang++.exe
. C'est donc le même exécutable, juste au moment de l'exécution, il vérifie son propre nom pour distinguer s'il doit se comporter comme un compilateur C ou C ++. HTH.-x c++
a été très utile pour donner comme-extra-arg
à clang-propre , pour l'obliger à traiter un fichier .h comme contenant C ++ au lieu de C.clang++
et de le laisser détecter le type de fichiers que vous lui fournissez. Lorsqu'un projet peut contenir des.cpp
fichiers, des.ll
fichiers (LLVM ir) et.o
,.a
,.so
et ce pas les fichiers de bibliothèques tierces,clang -x c++
va simplement jeter.Je ne sais pas pourquoi il n'y a pas de réponse directement au problème. Lorsque vous souhaitez compiler un programme C ++, il est préférable d'utiliser
clang++
. Par exemple, ce qui suit fonctionne pour moi:S'il est compilé correctement, il produira le fichier exécutable
test
et vous pouvez exécuter le fichier en utilisant./test
.Ou vous pouvez simplement utiliser
clang++ test.cc
pour compiler le programme. Il produira un fichier exécutable par défaut nomméa.out
. Utilisez./a.out
pour exécuter le fichier.L'ensemble du processus ressemble beaucoup à g ++ si vous êtes familier avec g ++. Consultez cet article pour vérifier quels avertissements sont inclus avec l'
-Wall
option. Cette page affiche une liste des indicateurs de diagnostic pris en charge par Clang.la source
J'ai eu un problème similaire lors de la construction de Clang à partir des sources (mais pas avec
sudo apt-get install
. Cela peut dépendre de la version d'Ubuntu que vous utilisez).Il peut être utile de vérifier si vous
clang++
pouvez trouver les emplacements corrects de vos bibliothèques C ++:Comparez les résultats de
g++ -v <filename.cpp>
etclang++ -v <filename.cpp>
, sous "#include <...> la recherche commence ici:".la source
solution 1:
solution 2:
solution 3:
la source