2015-10-12 3 views
6

Voglio sostituire gcc con clang (3.3) per creare il mio codice C++ 11, quindi dovrei usare l'opzione clang -stdlib=libstdc++ (per far vedere le intestazioni STL). L'opzione funziona: clang vedere le intestazioni come string, ma non riesce a trovare C++ 11 intestazioni (type_traits) perché le ricerche clang in 4,2 directory:Come fare clang per cercare le intestazioni di gcc?

clang++ -stdlib=libstdc++ -E -x c++ - -v < /dev/null 
... 
/usr/include/c++/4.2 
/usr/include/c++/4.2/backward 
/usr/include/clang/3.3 
/usr/include 
... 

Come far sembrare a mai versioni di intestazioni di GCC?

Per quanto ho capito, solo libC++ (non libstdC++) è supportato da clang per C++ 11 quindi l'unico modo in cui installa libC++?

+0

Se si desidera sostituire GCC con clang, perché si desidera utilizzare l'implementazione della libreria standard di GCC? Cosa stai cercando di fare? –

+1

Puoi pubblicare l'output completo di quel comando, senza le modifiche? –

+0

Come rispondere alle persone con soprannomi di parole multiple? :) – pavelkolodin

risposta

1

O disinstallare gcc 4.2 o utilizzare l'opzione --gcc-toolchain=<value>.

--gcc-toolchain=<value> Use the gcc toolchain at the given directory 

Ad esempio: clang++ --gcc-toolchain=/usr/local/... -stdlib=libstdc++ ...

Per quanto ho capito, solo libC++ (non libstdC++) è supportata da rumore per un C++ 11 quindi l'unico modo così installare ++ libc?

Sono supportate entrambe le librerie standard C++.