處理動態連結庫報錯的問題
今天,在起EMC程式一直啟不起程式,而是總部的研發人員要求這邊的維護人員把這個程式殺掉,災難由此而生。
啟動程式的命令為:
nohup ./emcAnalyse &
可以一直啟不起來,啟動起後,就報錯:
./emcAnalyse: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
顯然,是動態連結庫找不到。
於是以root使用者,在根目錄下查詢:
find / -name *libstdc++* -print
找到的結果是在/usr/lib庫(其實是/usr/lib64目錄下也有)下找到了檔案
[root@mdw lib]# ls -l *libstdc*
lrwxrwxrwx 1 root root 18 07-15 12:30 libstdc++.so.6 -> libstdc++.so.6.0.8
-rwxr-xr-x 1 root root 936908 2010-03-31 libstdc++.so.6.0.8
看起來,是因為libstdc++有了升級,導致5升到了6,嘗試用ln -s libstdc++.so.5 libstdc++.so.6.0.8
程式報錯變成
./emcAnalyse: error while loading shared libraries: libstdc++.so.5: wrong ELF class: ELFCLASS32
已經很確定是連結檔案升級導致的,在網上查了下,也找下了類似的問題:
“今天在安裝sjsas-9_1_01-mysql-linux.bin時提示這個共享庫找不到,錯誤資訊為:error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory在/usr/lib下面發現有 /usr/lib/libstdc++.so.6.0.3於是執行 ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5 建立一個符合連線,這個錯誤資訊沒有了。但是又出現錯誤資訊:undefined symbol: _ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE看來不行。還是刪除了連線: rm /usr/lib/libstdc++.so.5然後下載:http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/compat-libstdc++-33-3.2.3-47.3.i386.rpm再安裝rpm -ivh compat-libstdc++-33-3.2.3-47.3.i386"
這位老兄遇到的問題基本與我的一致,照著它的方法把64位的這個包下載下來,然後安裝好,最後命令確認包是否安裝好:
root@mdw tools]# rpm -ivh compat-libstdc++-33-3.2.3-47.3.x86_64.rpm
warning: compat-libstdc++-33-3.2.3-47.3.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:compat-libstdc++-33 ########################################### [100%]
[root@mdw tools]# rpm -qa | grep libstdc
libstdc++-4.1.2-48.el5
libstdc++-devel-4.1.2-48.el5
libstdc++-4.1.2-48.el5
compat-libstdc++-33-3.2.3-47.3
再用命令找到安裝目錄:
Usage: find [-H] [-L] [-P] [path...] [expression]
[root@mdw lib]# find / -name "*libstdc++.so*" -print
/home/oracle/ora10/lib32/stubs/libstdc++.so
/usr/lib64/libstdc++.so.5.0.7
/usr/lib64/libstdc++.so.6.0.8
/usr/lib64/libstdc++.so.5
/usr/lib64/libstdc++.so.6
/usr/local/greenplum-db-3.3.6.1/lib/libstdc++.so.6.0.8
/usr/local/greenplum-db-3.3.6.1/lib/libstdc++.so.6
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/32/libstdc++.so
/usr/lib/libstdc++.so.6.0.8
/usr/lib/libstdc++.so.6
顯然,這個目錄是在/usr/lib64目錄下(之前是不是目錄沒注意呀),檢視了下環境變數LD_LIBRARY_PATH,果然是沒有/usr/lib64,於是,在後面追加:/usr/lib64,再啟動程式,果然不再報錯,成功萬歲!
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12350275/viewspace-1042298/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- COM+元件啟動報錯問題處理元件
- 靜態連結動態連結的連結順序問題和makefile示例
- 關於cmake輸出動態連結庫名字的問題
- 動態連結庫與靜態連結庫
- 動態連結庫和靜態連結庫的區別
- cmake 連結動態連結庫
- vue2.0 練習中報錯問題處理(資料繫結錯誤)Vue
- mysql自動斷開連線的問題處理MySql
- 動態連結庫(DLL)
- 動態連結庫(轉)
- 近期處理的Oracle資料庫問題總結Oracle資料庫
- SAP CRM點了附件的超連結後報錯的處理方式
- ES報錯Result window is too large問題處理薦
- Win32動態連結庫與靜態連結庫的區別Win32
- 【MySQL】Novicat 連線mysql 報錯1251的問題處理,Novicat12 破解方法MySql
- IIS無法訪問動態連結庫DLL的原因
- 【問題處理】dbca建庫過程中報 ORA-04031錯誤的排查
- centos6.5報錯:checking filesystems failed問題處理CentOSAI
- Mysql自動處理同步報錯MySql
- Oracle起動庫時1102報錯處理Oracle
- 雙核處理(動態規劃的01揹包問題)動態規劃
- linux下靜態連結庫和動態連結庫的區別有哪些Linux
- 修改dll版本號處理未能載入“******”,或找不到動態連結庫依賴的項
- python中多程式處理資料庫連線的問題Python資料庫
- navicate oracle 連線報錯問題Oracle
- 關於顯示載入動態連結庫模組及解除安裝的問題
- DG報錯的處理
- 記一次報錯 symlink(): Protocol error 問題處理ProtocolError
- 【問題處理】PL/SQL Developer報錯Dynamic Performance Tables not accessibleSQLDeveloperORM
- Oracle啟動問題處理Oracle
- SSH 連線緩慢問題處理
- 動態連結庫(DLL)的建立和使用
- 線上MYSQL同步報錯故障處理總結MySql
- 透過連線資料庫來動態的生成樹的問題資料庫
- exp匯出報錯EXP-00106問題處理
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- Windows 下處理資料庫無法啟動問題Windows資料庫
- rails gem報錯的處理AI