ARM開發板執行執行檔案,找不到庫報錯的解決方法
平臺:smart210 coretex A8 、Redhat6
這裡舉我的列子,其實不管你執行什麼可執行檔案遇到這種問題都是一樣的方法去解決的。
1、錯誤提示
問題所在:這種問題是掛載開發板的根檔案系統中缺少相應的庫,路徑(看自己的根檔案系統掛載到哪裡)如:
解決方法的步驟:
1、 可到你配置、編譯的檔案執行:arm-linux-readelf –d +執行檔名,去查詢這個檔案執行需要哪些庫的支援。如
1、 查詢到了需要的庫之後:
1) 、如果缺少標準庫,一般標準庫可以到如下路徑查詢並複製你需要的庫到根檔案系統掛載的庫中。
2)、如果不是標準庫可以到配置編譯的檔案中的lib庫裡面查詢或者通過
$which +要查詢的命令或者檔案 或如果which沒有找到要找的命令,可以試試whereis,該命令搜尋更大的範圍的系統目錄。
有些系統上的which命令不顯示使用者沒有執行許可權的檔案($whereis +要查詢的命令)
1、 如果查詢不到,則只有自己去下載了。
這裡講解缺少libjeg.so.0庫。
可以到這裡下載http://www.ijg.org/files/ 請下載libjpegsr6.tar.bz2。(如果下載zip的可能會在配置的時候配置不成功)。
解壓:tar –xzvf libjpegsr6.tar.bz2
cd 進入解壓出來的檔案的
建立目錄:mkdir _install 目錄
配置:
./configure --host=arm-linux--prefix=/${PWD}/_install ARCH=arm-linux-gcc --enable-shared --enable-static
編譯: make 再執行make install(這裡可能會提示這麼一些如下的錯誤),這個時候你看缺什麼目錄你就給他建立一個就ok了,然後重新makr install。
編譯成功之後,可以在_install/lib目錄下看到你需要的檔案。
4、將這個你需要的庫複製到你的根檔案系統中的lib目錄下
5、再去執行motion 應該就不會再提示錯誤了。