2011-11-19 21 views
5

Program aracılığıyla, paylaşılan nesneler için dlopen() tarafından hangi yolların arandığını öğrenmenin bir yolu var mı? Ben her zaman dlopen() 'in sadece/lib ve/usr/lib dizinlerine bakacağını düşünürdüm ama şimdi Linux Mint'te libglib-2.0.so gibi bazı temel bileşenlerin tamamen farklı bir klasörde olduğunu gördüm:/rofs/lib/i386-gnu-linux ve diğerleri. Dlopen() öğesinin paylaşılan bir nesne için arayacağı tüm bu yolları tanımanın bir yolu var mı? LD_LIBRARY_PATH ortam değişkenini zaten kontrol ettim, ancak hiç tanımlanmadı.dlopen() arama yolu

cevap

7

ldconfig adam sayfasına bir göz atın ve dosya: /etc/ld.so.confld.so.conf ipucu ek olarak

2

:

Belirli bir kütüphane dlopen -ed, dlopen yolunu geçmesi olmasını sağlamak istiyorsanız , Örneğin dlopen("/some/path/to/lib.so", RTLD_LOCAL) veya belki dlopen("./lib.so", RTLD_LOCAL), ancak dlopen("lib.so", RTLD_LOCAL)