Próbuję dowiedzieć się, jak ustawić pewną zmienną środowiskową, która spowodowałaby, że g ++ będzie łączył się z poprawnymi wersjami bibliotek.GCC, jak domyślnie dodać domyślną ścieżkę wyszukiwania łącznika? LIBRARY_PATH nie działa
Mam kilka starych bibliotek boost w/usr/lib64 (połączenie z nimi nie powiedzie się) i nowe biblioteki w/v/users/regel/lib. Łącznik powinien więc łączyć się z nowymi bibliotekami.
Command:
$ g++ test.cpp -lboost_system -L/v/users/regel/lib
linki Program poprawnie. Jednak chcę ustawić to jako katalog wyszukiwania nr 1 dla linkera, aby nie musiałem określać "-L" za każdym razem, gdy łączę.
następujące zmienne środowiskowe wydają się nie załatwi:
$ 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
i
$ 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
Pomimo przeczytaniu wielu artykułów i postów na podobne tematy, nie znalazłem jeszcze rozwiązania.
Czy próbowałeś ustawić + eksportowanie LD_LIBRARY_PATH przed uruchomieniem g ++ (zamiast podania go w wierszu poleceń g ++)? –
Próbowałem wyeksportować zarówno LIBRARY_PATH, jak i LD_LIBRARY_PATH przed uruchomieniem g ++. – Regel
@FrankSchmitt, ustawiając sposób, w jaki OP miał taki sam efekt jak eksportowanie (ale ograniczone do tego polecenia i jego potomków), więc to nie pomoże –