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' -x
interruttore 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 clang
e clang++
bene: Differenza tra clang e clang ++
clang.exe
e 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-arg
per 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 .cpp
i file, .ll
file (LLVM ir) e .o
, .a
, .so
e 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 test
ed è possibile eseguire il file utilizzando ./test
.
Oppure puoi semplicemente usare clang++ test.cc
per compilare il programma. Produrrà un file eseguibile predefinito denominato a.out
. Utilizzare ./a.out
per 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' -Wall
opzione. 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.