Tôi đang cố gắng tìm ra cách thiết lập một số biến môi trường mà có thể làm cho g ++ liên kết đến đúng phiên bản của các thư viện.GCC cách thêm trước đường dẫn tìm kiếm trình liên kết mặc định theo mặc định? LIBRARY_PATH không hoạt động
Tôi có một số thư viện tăng cũ trong/usr/lib64 (liên kết với những lỗi này sẽ không thành công) và thư viện mới trong/v/users/regel/lib. Vì vậy, mối liên kết nên liên kết với các thư viện mới.
Command:
$ g++ test.cpp -lboost_system -L/v/users/regel/lib
liên kết các chương trình một cách chính xác. Tuy nhiên, tôi muốn đặt thư mục này làm thư mục tìm kiếm số 1 cho trình liên kết để tôi không phải chỉ định '-L' mỗi khi tôi liên kết.
Các biến môi trường sau đây dường như không làm các trick:
$ 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
và
$ 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
Mặc dù đọc rất nhiều bài báo và bài viết về các chủ đề tương tự, tôi đã không tìm thấy một giải pháp được nêu ra.
Bạn đã thử đặt + xuất LD_LIBRARY_PATH trước khi chạy g ++ (thay vì cung cấp nó trên dòng lệnh g ++)? –
Tôi đã thử xuất cả LIBRARY_PATH và LD_LIBRARY_PATH trước khi chạy g ++. – Regel
@FrankSchmitt, thiết lập nó theo cách OP đã có tác dụng tương tự như xuất khẩu nó (nhưng giới hạn trong lệnh đó và các con của nó) vì vậy nó sẽ không giúp đỡ –