Sto provando a creare e collegare un progetto basato su C++, cmake con clang (3.0). Questo progetto si collega a diverse librerie che sono installate in una directory personalizzata/mio/dir /. Questa directory è inclusa nelle variabili di ambiente LD_LIBRARY_PATH e LIBRARY_PATH. Il progetto costruisce e si collega bene con g ++.Il linker Clang non esamina LD_LIBRARY_PATH
Il comando link generato ed eseguito da CMake è simile al seguente:
/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib
ld poi si lamenta con il seguente messaggio:
/usr/bin/ld: cannot find -lmylib
Il comando link qui sopra funziona bene ogni volta aggiungo manualmente -L/my/dir/
. C'è un modo per collegare senza specificare il flag -L
?
['LD_LIBRARY_PATH'] (http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html) è per il caricamento delle librerie all'avvio, non per la risoluzione delle dipendenze dei collegamenti. Forse vuoi usare 'LDFLAGS'? –
Interessante. Io uso __g ++ __ e __clang ++ __ in modo intercambiabile con CMake ma non ho mai avuto un problema simile. Semplicemente uso la macro 'link_directories()' per definire il percorso della libreria. – Hindol