web-dev-qa-db-fra.com

Comment compiler C ++ avec Clang?

J'ai installé Clang en utilisant apt-get dans Ubuntu, et je peux bien compiler des fichiers C en l'utilisant. Cependant, je ne sais pas comment compiler C++ à travers lui. Que dois-je faire pour compiler C++?

84
pythonic

La commande clang est pour C et la commande clang++ est pour C++.

127
adl

En outre, 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 la liste de diffusion explique la différence entre clang et clang++ well: Différence entre clang et clang ++

44
Kim Gräsman

Je ne sais pas pourquoi il n'y a pas de réponse directement au problème. Lorsque vous voulez compiler un programme C++, il est préférable d’utiliser clang++. Par exemple, ce qui suit fonctionne pour moi:

clang++ -Wall -std=c++11 test.cc -o test

Si compilé correctement, il produira le fichier exécutable test, et vous pourrez l'exécuter 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. Utilisation ./a.out pour exécuter le fichier.

L'ensemble du processus ressemble beaucoup à g ++ si vous êtes familier avec g ++. Voir cet article pour vérifier quels avertissements sont inclus avec -Wall option. Cette page affiche une liste des indicateurs de diagnostic pris en charge par Clang.

30
jdhao

J'ai eu un problème similaire lors de la construction de Clang depuis la source (mais pas avec Sudo apt-get install. Cela peut dépendre de la version d’Ubuntu que vous utilisez.

Il pourrait être intéressant de vérifier si clang++ peut trouver les emplacements corrects de vos bibliothèques C++:

Comparez les résultats de g++ -v <filename.cpp> et clang++ -v <filename.cpp>, sous "#include <...> la recherche commence ici:".

3
Guy Adini