2012-03-14 22 views
0

我想解釋一個複雜的問題,請耐心等待。未能加載現有的庫

說我有這些文件

/path/build/ 
/path/build/liba.so 
/path/build/liba.so.3 -> liba.so 
/path/build/libtest.so 

我甚至已經設置PATH=/path/build:...(其中...是我的正常$PATH)。

在某一點libtest.so將在運行時加載liba.so.3

然而,liba.so.3似乎並不運行代碼(成功)的負載libtest.so時存在,而當我問ldd的幫助,我得到這個:

$ ldd /path/build/libtest.so 
linux-vdso.so.1 => (0x00007fff24fff000) 
liba.so.3 => not found 
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8fea222000) 
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8fe9f9e000) 
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8fe9d88000) 
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8fe9b6a000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8fe97c9000) 
/lib64/ld-linux-x86-64.so.2 (0x00007f8fea767000) 

(注意第二輸出線)

我該如何弄清楚發生了什麼問題?圖書館顯然存在,但裝載者聲稱它不是。

+0

是/ path/build在你的LD_LIBRARY_PATH上? Linux動態加載器在默認位置之後查找Linux上的庫。 – display101 2012-03-14 11:45:44

+0

@keith請將該評論改爲答案,我會接受你的膽量!噢,男孩,我要在角落裏坐下來5分鐘,讓恥辱踢在...... – bitmask 2012-03-14 11:49:55

回答

1

LD_LIBRARY_PATH上是/ path/build嗎? Linux動態加載器在這裏查找Linux上的庫,默認位置