2011-11-19 419 views
5

是否有一種方法可以通過dlopen()爲共享對象以編程方式查找哪些路徑被搜索?我一直以爲dlopen()只會在/ lib和/ usr/lib中看到,但現在我已經看到在Linux Mint上,像libglib-2.0.so這樣的幾個核心組件位於完全不同的文件夾中,即在/ rofs/lib/i386-gnu-linux等等。有沒有辦法瞭解dlopen()將搜索共享對象的所有這些路徑?我已經檢查了環境變量LD_LIBRARY_PATH,但它根本沒有定義。dlopen()搜索路徑

回答

7

看看ldconfig手冊頁和文件:/etc/ld.so.conf

2

另外ld.so.conf暗示:

如果你想確保特定庫dlopen -ed,傳遞路徑dlopen ,例如dlopen("/some/path/to/lib.so", RTLD_LOCAL)或者dlopen("./lib.so", RTLD_LOCAL)但不是dlopen("lib.so", RTLD_LOCAL)