Tôi sử dụng một thực thi Linux, các thư viện được đặt ở nhiều nơi. Tôi có nghĩa là cùng một thư viện với phiên bản khác nhau. Vấn đề là chương trình thực thi nhặt được tệp thực thi trong thư viện sai. HĐH là Ubuntu 64 bit.
Các thư viện được đặt / usr / local / lib và / usr / lib / x86_64-linux-gnu. Tôi muốn nó sẽ sử dụng phiên bản / usr / local / lib.
Để buộc nó sử dụng phiên bản / usr / local / lib. Tôi đã sao chép .so từ đó sang / usr / lib / x86_64-linux-gnu và xóa .so tham chiếu ở đó. Kết quả là phần mềm (VLC) không sử dụng các thư viện mới được sao chép nhưng nó đã ngừng hoạt động bình thường và hoàn toàn không tìm thấy thư viện. Mặc dù thực tế, nó đã ở đằng kia. Vì vậy, không rõ làm thế nào VLC quyết định sử dụng thư viện nào.
Rõ ràng là nó sử dụng các tệp trong /etc/ld.so.conf.d để lấy đường dẫn thư viện. .
LD_LIBRARY_PATH chưa được đặt.
Cập nhật:
Tôi nghĩ rằng tôi chỉ có thể thêm một phiên bản khác, chương trình sẽ sử dụng phiên bản đó nhưng có vẻ như phiên bản của thư viện được đặt ở thời gian biên dịch cho tệp thực thi đã cho. Vì vậy, nó sẽ không sử dụng phiên bản mới, chỉ vì tôi xóa một phiên bản cũ.