2011-08-24 90 views
2

我剛剛使用由自定義第三方供應商提供的一些庫編譯了測試應用程序。沒有安裝/軟件包管理器。應用程序按預期構建。然而,當我去運行它,它似乎無法找到所需的.so文件(我已經得到了坐在同一目錄):鏈接/註冊.so文件

[[email protected] Debug]$ ls 
esdcan libntcan.so.3 makefile objects.mk sources.mk src 
[[email protected] Debug]$ ./esdcan 
./esdcan: error while loading shared libraries: libntcan.so.3: cannot open shared object file: No such file or directory 
[[email protected] Debug]$ ldd esdcan 
    linux-vdso.so.1 => (0x00007fff125ff000) 
    libntcan.so.3 => not found 
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000031d2600000) 
    libm.so.6 => /lib64/libm.so.6 (0x00000031c7600000) 
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000031c8600000) 
    libc.so.6 => /lib64/libc.so.6 (0x00000031c7200000) 
    /lib64/ld-linux-x86-64.so.2 (0x00000031c6e00000) 

我錯過了一些步驟,我當然,我完全不知道這一步是什麼。

回答

4

完成構建後運行ldconfig,並確保當前目錄位於/etc/ld.so.conf文件中,以便當前目錄是用於查找共享庫的受信任目錄。

+0

這樣做,謝謝! – iegod

0

你可以把它複製到某個地方像/ usr/lib目錄(這是一個有點侵入性的),或者你可以嘗試設置LD_LIBRARY_PATH = [絕對(?)路徑包含libntcan.so.3]:LD_LIBRARY_PATH運行前。

1
/etc/ld.so.conf   File containing a list of colon, space, tab, new- 
          line, or comma-separated directories in which to 
          search for libraries. 

您也可以設置$LD_LIBRARY_PATH環境變量。