0
我們使用具有庫路徑詳細信息(使用-L選項編譯)的makefile創建了我們模塊的可執行文件。所有必需的庫都存在於該路徑中,並且已設置到LD_LIBRARY_PATH環境變量。但仍然在dbx中運行可執行文件時遇到以下錯誤。ld.so無法加載所需的庫
dbx MsgServer
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.2' in your .dbxrc
Reading MsgServer
Reading ld.so.1
ld.so.1: MsgServer: fatal: libcp.so: open
failed: No such file or directory
terminating signal 9 SIGKILL
我不想打聽爲什麼圖書館沒有鏈接。這裏是ldd的輸出。
ldd MsgServer
libcp.so => (file not found)
libftux.so => (file not found)
libfldap.so => (file not found)
libfdmq.so => (file not found)
libfbsafe.so => (file not found)
libdmq.so => /opt/messageq/lib/libdmq.so
libmqic.so => /usr/lib/libmqic.so
libsocket.so.1 => /usr/lib/libsocket.so.1
libc.so.1 => /usr/lib/libc.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libCrun.so.1 => /usr/lib/libCrun.so.1
libm.so.1 => /usr/lib/libm.so.1
libw.so.1 => /usr/lib/libw.so.1
libthread.so.1 => /usr/lib/libthread.so.1
libmqmcs.so => /usr/lib/libmqmcs.so
librt.so.1 => /usr/lib/librt.so.1
libmqiz.so => /opt/mqm/lib/libmqiz.so
libmp.so.2 => /usr/lib/libmp.so.2
libaio.so.1 => /usr/lib/libaio.so.1
/usr/platform/SUNW,Sun-Fire/lib/libc_psr.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
任何幫助將不勝感激。
LD_LIBRARY_PATH是否已導出?這些庫位於正確的目錄中嗎?庫是否與您的應用程序使用相同的ABI和CPU進行編譯? – haael 2014-09-03 10:34:44
LD_LIBRARY_PATH被導出,我能夠看到路徑,當我回應該變量,並且所有的庫與我的應用程序編譯相同的CPU – knp 2014-09-03 10:37:20
二進制是一個SUID(設置UID)程序?或者你是以root身份運行?你似乎在Solaris上運行。請注意,LD_LIBRARY_PATH不適用於SUID程序。 – 2014-09-03 12:59:16