Ho installato Clang utilizzando apt-get in Ubuntu e posso compilare correttamente i file C utilizzandolo. Tuttavia, non ho idea di come compilare C ++ attraverso di esso. Cosa devo fare per compilare C ++?
Ho installato Clang utilizzando apt-get in Ubuntu e posso compilare correttamente i file C utilizzandolo. Tuttavia, non ho idea di come compilare C ++ attraverso di esso. Cosa devo fare per compilare C ++?
Risposte:
Inoltre, per i posteri - Clang (come GCC) accetta l' -xinterruttore per impostare la lingua dei file di input, ad esempio,
$ clang -x c++ some_random_file.txt
Questo thread della mailing list spiega la differenza tra clange clang++bene: Differenza tra clang e clang ++
clang.exee quindi copia l'eseguibile in clang++.exe. Quindi è lo stesso eseguibile, solo in fase di esecuzione controlla il proprio nome per distinguere se comportarsi come compilatore C o C ++. HTH.
-x c++è stata molto utile per dare come -extra-argper clang-ordine , per costringerlo a trattare un file .h come contenente C ++ al posto di C.
clang++e lasciare che rilevi il tipo di file che gli fornisci. Quando un progetto può contenere .cppi file, .llfile (LLVM ir) e .o, .a, .soe cosa no file da librerie di terze parti, clang -x c++sarà solo vomitare.
Non so perché non esiste una risposta che affronti direttamente il problema. Quando si desidera compilare un programma C ++, è meglio usare clang++. Ad esempio, per me funziona quanto segue:
clang++ -Wall -std=c++11 test.cc -o test
Se compilato correttamente, produrrà il file eseguibile tested è possibile eseguire il file utilizzando ./test.
Oppure puoi semplicemente usare clang++ test.ccper compilare il programma. Produrrà un file eseguibile predefinito denominato a.out. Utilizzare ./a.outper eseguire il file.
L'intero processo è molto simile a g ++ se hai familiarità con g ++. Vedere questo post per verificare quali avvisi sono inclusi con l' -Wallopzione. Questa pagina mostra un elenco di flag diagnostici supportati da Clang.
Ho avuto un problema simile durante la compilazione di Clang dai sorgenti (ma non con sudo apt-get install. Ciò potrebbe dipendere dalla versione di Ubuntu che stai utilizzando).
Potrebbe valere la pena controllare se è clang++possibile trovare le posizioni corrette delle librerie C ++:
Confronta i risultati di g++ -v <filename.cpp>e clang++ -v <filename.cpp>, in "#include <...> la ricerca inizia qui:".
#include <iostream>. -lstdc ++ flag ha risolto questo problema.