Non riesco a farlo funzionare. Ho configurato con il --with-gcc-toolchain=
dove dopo gli equals ho messo la directory in cui gcc era (/usr/lib/gcc-snapshot/bin
).Problemi del linker Clang (dall'origine, a gcc-snapshot)
Ho anche esaminato le risposte a "clang linker problem" ma non vedo come posso ottenere la risposta accettata per trovare la posizione corretta, e la risposta in collegamento simbolico avrebbe funzionato, tranne che tutte le directory che sta cercando esiste (copiare la cartella lib
da gcc-snapshot in una delle posizioni di inclusione non sembra essere di aiuto).
Come suggerito in altra domanda, l'uscita del clang++ test.cpp -v
:
[email protected]:~/programming$ clang++ test.cpp -v
clang version 3.3 (trunk 171350)
Target: x86_64-unknown-linux-gnu
Thread model: posix
"/home/bob/programming/build/Release+Asserts/bin/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name test.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -v -resource-dir /home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3 -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/local/include -internal-isystem /home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/bob/programming -ferror-limit 19 -fmessage-length 80 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -backend-option -vectorize-loops -o /tmp/test-PWiB4M.o -x c++ test.cpp
clang -cc1 version 3.3 based upon LLVM 3.3svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/home/bob/programming/build/Release+Asserts/bin/../lib/clang/3.3/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
test.cpp:1:10: fatal error: 'iostream' file not found
#include ^
1 error generated.
clang versione 3.3 (tronco revisione 171350)
EDIT: ci sono .o
file nella cartella Release+Asserts
per la costruire. È normale? In caso contrario, perché è così, e come posso risolverlo (se posso indicarlo come stdlib di clang, allora funziona anche così).
Edit 2: Non riesce anche a compilare int main(){return 0;}
in quanto non riesce a trovare crtbegin.o
. piena potenza è la seguente:
/usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: cannot find -lgcc_s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I risultati dopo -v
sono gli stessi come sopra, ma con l'errore desinenza essere diversi.
config.log:
Il file completo può essere trovato here, ma la prima linea (non di commento) è: $ ../llvm/configure --with-gcc-toolchain=/usr/lib/gcc-snapshot/gcc
Does test.cpp compilare e collegare con g ++? Nel tuo output il codice non riesce a compilare perché iostream non viene trovato. - – emil
@emil questo è il mio punto. Ho aggiunto un altro esempio che non riesce a compilare in edit 2. Si compila bene con g ++ – soandos
Dove si trova il file iostream nel posto in cui hai installato llvm (il tuo prefisso llvm) – Spundun