2011-07-15 15 views
6

bulunamadıDlopen() hata görüntü Önce bir .dylib yükler aşağıdaki komutu kullanarak libFirst.dylib arama sağlar yazılıma sahip

error warning: Ignored unknown object module at 0x129310 with type 0x8a8399 

dlerror: dlopen(/path/libSecond.dylib, 9): Library not loaded: libFirst.dylib 
    Referenced from: /path/libSecond.dylib 
    Reason: image not found 

ne alamadım onun libFirst.dylib diyor ki: aynı komutunu kullanarak başka .dylib yüklemek ama libSecond.dylib için, bu ortak kitaplığın yükleme bana Xcode konsolunda şu uyarılarda verir yüklü değil ama şu anda libFirst.dylib gelen bir işlev içinde, bu nasıl olabilir?

DYLD_LIBRARY_PATH alanındaki tüm yollarım da doğru görünüyor.

Şimdiden teşekkürler, günlerdir buna takıldım.

+0

Strace gibi bir şey denediniz mi? Özellikle hangi çağrının başarısız olduğunu görmek için size daha fazla bilgi verebilir. – Josh

+0

Yığın trace, libFirst.dylib içinde bir işlev olan libSecond.dylib'de CreateModule adlı dlopen çağrısını gösteren işlevi gösterir. –

+0

Yığın izi - strace sistem izi anlamına gelir. İzler, dosyaları açma, stat'ing inode'lar vb. Gibi işlev çağrılarıdır. İşletim sisteminizin tam olarak nerede göründüğüne biraz ışık tutabilir. – Josh

cevap

3

Tüm kitaplıklarımın kurulum adını @ rpath/dylibName.dylib olarak değiştirmek için -install_name kullanarak bittim ve Xcode'da kullandığım tüm .dylibs öğelerini bulmak için @loader_path kullanarak Runpath Arama yollarını ayarlıyorum.

+0

Tüm komut satırınızı * -install_name * kullanarak verebilir misiniz? –

+1

Merhaba @MartinDelille. Bunu 3 yıl önce yaptım, bu yüzden tam bir komut satırına sahip değilim, ama burada nasıl kullanılacağı hakkında bir blog: http://log.zyxar.com/blog/2012/03/10/install-name -on-os-x / –

İlgili konular