Sto cercando di capire come impostare alcune variabili di ambiente che renderebbero g ++ il collegamento alle versioni corrette delle librerie.GCC come aggiungere prima il percorso di ricerca del linker predefinito per impostazione predefinita? LIBRARY_PATH non funziona
Ho alcune vecchie librerie di boost in/usr/lib64 (il collegamento con queste non riuscirà) e nuove librerie in/v/users/regel/lib. Quindi il linker dovrebbe collegarsi alle nuove librerie.
Comando:
$ g++ test.cpp -lboost_system -L/v/users/regel/lib
collegamenti correttamente il programma. Tuttavia, desidero impostare questo come directory di ricerca numero 1 per il linker in modo che non debba specificare '-L' ogni volta che effettuo il collegamento.
le seguenti variabili d'ambiente non sembrano fare il trucco:
$ LIBRARY_PATH=/v/users/regel/lib g++ test.cpp -lboost_system
/tmp/regel/cc4SmBtI.o: In function `main':
test.cpp:(.text+0x5): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
e
$ LD_LIBRARY_PATH=/v/users/regel/lib:$LD_LIBRARY_PATH g++ test.cpp -lboost_system
/tmp/regel/ccUreBZy.o: In function `main':
test.cpp:(.text+0x5): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
Nonostante la lettura di numerosi articoli e messaggi su argomenti simili, non ho ancora trovato una soluzione.
Hai provato a impostare + esportare il LD_LIBRARY_PATH prima di eseguire g ++ (invece di fornirlo sulla riga di comando g ++)? –
Ho provato ad esportare sia LIBRARY_PATH che LD_LIBRARY_PATH prima di eseguire g ++. – Regel
@FrankSchmitt, impostandolo come ha fatto l'OP ha lo stesso effetto di esportarlo (ma limitato a quel comando e ai suoi figli), quindi non sarà di aiuto –