檔案系統缺少庫:-/bin/sh: hello: not found問題及解決方法
1、問題描述:
執行一個程式,會出現-/bin/sh: xxx :not fount
開啟/sbin下會發現這個xxx可執行檔案是存在的,這可能是檔案系統中(/lib)中缺少某些庫導致的。
2、解決方法-以hello.c示例
以hello.c為例,編譯出了hello可執行檔案,放到了/sbin中,並且在/etc/init.c/rcS中新增:
/sbin/hello &
執行時出現了:
-/bin/sh: hello: notfound
解決方法:
一、在PC上,檢視hello所依賴的庫:
#arm-linux-readelf –ahello
找到:
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x000034 0x00008034 0x000080340x000c0 0x000c0 R E 0x4
INTERP 0x0000f4 0x000080f4 0x000080f4 0x000130x00013 R 0x1
[Requesting programinterpreter: /lib/ld-linux.so.2]
LOAD 0x000000 0x00008000 0x000080000x005d8 0x005d8 R E 0x8000
LOAD 0x0005d8 0x000105d8 0x000105d80x0011c 0x00120 RW 0x8000
DYNAMIC 0x0005e8 0x000105e8 0x000105e8 0x000c80x000c8 RW 0x4
NOTE 0x000108 0x00008108 0x000081080x00020 0x00020 R 0x4
說明hello依賴與ld-linux.so.2
二、拷貝庫到檔案系統Lib目錄,建立連結檔案
在編譯器的lib目錄中找到ld-linux.so.2:
[email protected]: # pwd
/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/arm-linux/lib
[email protected]
ld-linux.so.2
[email protected]: # ls -l ld-linux.so.2
lrwxrwxrwx 1 500 500 11 2009-04-08 17:41ld-linux.so.2 -> ld-2.3.6.so
可以看出這是個連線檔案,是指向ld-2.3.6.so的連線
我的做法:
將ld-linux.so.2和ld-2.3.6.so都拷貝到了我的檔案系統目錄的/lib下,然後再做連線:
ln-s ld-2.3.6.so ld-linux.so.2
來建立ld-linux.so.2的符號連線。
提示ld-linux-so.2檔案已經存在
所以,應先刪除ld-linux.so.2,或者說僅拷貝ld-2.3.6.so,然後建立連線:
ln-s ld-2.3.6.so ld-linux.so.2
建立ld-linux-so.2就可以了。
三、拷貝依賴的其他動態庫
執行時還會出現如下錯誤:
/sbin/hello:error while loading shared libraries: libc.so.6: cannot open shared objectfile: No such file or directory
解決方法:從同一目錄下拷貝過去就可以了。
這是再執行hello,就會成功了:
================================
hello world
================================
相關推薦
檔案系統缺少庫:-/bin/sh: hello: not found問題及解決方法
1、問題描述: 執行一個程式,會出現-/bin/sh: xxx :not fount 開啟/sbin下會發現這個xxx可執行檔案是存在的,這可能是檔案系統中(/lib)中缺少某些庫導致的。 2、解決方法-以hello.c示例 以hello.c為例,編譯出了hel
arm開發板執行應用程式出現:-/bin/sh:xxx:not found 解決辦法
百度可知是因為缺少動態庫,在PC 執行arm-linux-readlf xxx(應用程式) 列印結果如下: ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class:
/system/bin/sh: su: not found的解決辦法
加粗樣式 - - /system/bin/sh: su: not found是因為許可權不夠,最直接的解決方式就是Root, 但是Root了會有很多潛在風險,而且我相信,有很多的人是用的華為,華為是關閉瞭解鎖了的。 - 我們去adb shell檢視SQLite,
Linux 命令列報錯:-bash:XXX: command not found ,解決方法參考
相關錯誤 我的錯誤 在CentOS中安裝jdk時, 修改配置檔案,輸入命令 : vim /etc/profile 修改完後重新編譯,輸入命令 : source /etc/profile 我的CentOS錯誤資訊是:-bash:UNset: command no
安裝redis出現cc adlist.o /bin/sh:1:cc:not found的解決方法
安裝redis時 提示執行make命令時提示 CC adlist.o /bin/sh: cc: 未找到命令 問題原因:這是由於系統沒有安裝gcc環境,因此在進行編譯時才會出現上面提示,當安裝好gcc後再進行編譯時,上面錯誤提示將消失。 解決方法:
psutil.Popen執行python命令,提示/bin/sh: locust: not found
原來: cmd = 'locust -f %s --slave --no-reset-stats --master-host=%s' % (script_file[i], master_host) psutil.Popen(cmd, shell=True, stdout=None, stderr=None
/bin/sh: ./main: not found或者go run: no go files listed
出現問題的場景 在本機(Windows系統)上生成一個可執行的二進位制檔案,然後上傳到伺服器上(Linux系統)上執行,就會出現ggo run: no go files listed的問題。 另外一種問
Mac下安裝第三方模塊報錯:‘sqlfront.h‘ file not found的解決辦法
for found ins 解決辦法 第三方模塊 mssql erro ref div 1.軟件環境: mac環境:10.11.6(15G31) python: 3.6 2.問題: sudo pip install pymssql 後出現下面問題:
運行用例時,報錯Unknow Error:Element xxx is not clickable……的解決方法
cut 處理 ebe 將他 最好 executor tro path img 通常這種情況是由於在點擊該元素時,js更換了元素屬性造成的。 所以可以采用js的方式進行處理 方法如下: WebDriver driver = new FirefoxDriver(); Web
jmeter(二十二):內存溢出原因及解決方法
ext 內容 str 百度百科 詳細 由於 ora aik 異常 jmeter是一個java開發的開源性能測試工具,在性能測試中可支持模擬並發壓測,但有時候當模擬並發請求較大或者腳本運行時間較長時,壓力機會出現卡頓甚至報異常————內存溢出,這裏就介紹些如何解決內存溢出及相
VScode編譯C++,標頭檔案顯示not found的解決方法
一直用codeblocks,想試試vscode,結果這個問題給我弄懵逼了。一開始以為是iostream這個標頭檔案not found,後來發現第一個標頭檔案都會這樣顯示,放到後面就不會了,然而,光這一個顯示not found(雖然並不影響編譯),就能逼死強迫症的啊~~~ 言歸正傳,這個問題解
IOS引用三方framewrok的標頭檔案出現'xxxxx/xxxx.h' file not found問題解決方法
找不到framework的解決辦法: 摘錄自網路:http://blog.sina.com.cn/s/blog_916e0cff0102vath.html 同事弄了一個專案說要加個高德地圖,匯入後編譯各種三方framework的標頭檔案找不到啊!!也不知道網上哪些大神發現只
linux下ffmpeg增加h.264庫時的ERROR: libx264 not found 錯誤解決
Linux 作業系統:Fedora 8;FFMpeg版本:0.5;libx264 BUILD:79。 錯誤描述:在安裝好libx264 庫後configure ffmpeg-0.5 時(要選擇--enable-libx264),報出ERROR: libx264 not found的錯誤。即提示找不到libx
WordPress固定連結修改報錯:Object not found的解決方法
WordPress預設使用帶有問號和很多數字的URL作為固定連結,就像這個樣紙: http://frozensky.sinaapp.com/?p=123 這種毫無意義的URL對於SEO來說很不友好呀。 所以某雪要把它設定為文章名的形式: http://frozens
PCL庫使用中出現的一些錯誤及解決方法
1、使用pcl::BilateralFilter雙邊濾波器提示如下的錯誤資訊: 錯誤 59 error LNK2001: 無法解析的外部符號 "public: virtual void __thisc
linux sh腳本異常:/bin/sh^M:bad interpreter: No such file or directory
技術 異常 logs 信息 ima 轉換 linux中 bin ges 在Linux中執行.sh腳本,異常/bin/sh^M: bad interpreter: No such file or directory。這是不同系統編碼格式引起的:在windows系統中編輯的.s
sh腳本異常:/bin/sh^M:bad interpreter: No such file or directory
int 腳本 file bsp 字符 IT director linux inter 轉自:http://www.cnblogs.com/pipelone/archive/2009/04/17/1437879.html 在Linux中執行.sh腳本,異常/bin/sh^
spi flash(W25Q64)移植檔案系統LittleFS(作者:wenyun 日期:20180907)
一、移植步驟 注:使用的開發平臺:STM32F103ZET6 1、下載LittleFS原始碼包:https://github.com/ARMmbed/littlefs 2、把原始碼包裡的lfs.h、lfs.c、lfs_util.h、lfs_util.c拷貝到專案中 3、新增以下程式碼
檔案系統與儲存:fat32的DBR分析
一沒有包含載入程式,所以該活動分割槽,起始扇區是:只有DBR(分割槽引導扇區)資訊; 如下是第一份DBR:截止地址0x200=512位元組 FAT32採用雙重分割槽引導扇區,所以,後面還有一份DB
CSV檔案C++操作庫:MiniCSV
MiniCSV 是一個基於c++檔案流的小巧而靈活的 CSV 庫。 Writing We see an example of writing tab-separated values to file usingcsv::ofstreamclass. Tab is