1. 程式人生 > >檔案系統缺少庫:-/bin/sh: hello: not found問題及解決方法

檔案系統缺少庫:-/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]

ingli: # ls  ld-linux.so.2

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 ErrorElement 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