[問題] ARM execution No such file or dictionary

看板LinuxDev作者 (冰淇淋乾杯)時間16年前 (2009/07/30 13:45), 編輯推噓7(7018)
留言25則, 8人參與, 最新討論串1/1
敝人是剛接觸ARM板子新手,若問的太基本還請見諒 我剛剛利用arm-linux-gcc編譯出一個exection file 將檔案燒至ARM 9板上,進去執行的時候,卻告訴我No such file or dictionary 我編譯的過程式這樣: root# arm-linux-gcc -o hello hello.c 燒錄之後執行 sh-3.2# ./hello 之後他就產生一個錯誤訊息:./hello : No such file or dictionary 還請各位給一點提示,謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.8.74

07/30 15:20, , 1F
更改檔案權限試試,chmod +x file_name
07/30 15:20, 1F

07/30 16:26, , 2F
你ls後有看到hello嗎?
07/30 16:26, 2F

07/30 16:48, , 3F
以上兩個步驟我都有試過
07/30 16:48, 3F

07/30 16:48, , 4F
但是還是沒有辦法
07/30 16:48, 4F

07/30 16:48, , 5F
可是我編成static的話,卻又可以
07/30 16:48, 5F

07/30 16:49, , 6F
所以想請問,這是什麼樣的問題?
07/30 16:49, 6F

07/30 16:49, , 7F
因為印象中如果是少lib,應該不會是這種訊息才是
07/30 16:49, 7F

07/30 20:13, , 8F
用 arm-linux-ldd 看一下檔案要什麼 library,
07/30 20:13, 8F

07/30 20:13, , 9F
再檢查你的 Target board 是不是有這些檔案
07/30 20:13, 9F

07/30 20:24, , 10F
我的toolchain中沒有arm-linux-ldd這個指令
07/30 20:24, 10F

07/30 20:25, , 11F
我利用arm-linux-strings 做取代
07/30 20:25, 11F

07/30 20:25, , 12F
找到的lib,都已經放到rootfs底下的/lib中了
07/30 20:25, 12F

07/30 20:26, , 13F
我也有確認過檔案是燒在rootfs中
07/30 20:26, 13F

07/30 20:33, , 14F
會是ld的問題嗎...
07/30 20:33, 14F

07/30 22:49, , 15F
arm-linux-readelf -a hello | grep "Shared library"
07/30 22:49, 15F

07/30 22:54, , 16F
另外要確定C函式庫比如libc.so.6之類的也有放進去
07/30 22:54, 16F

07/30 22:58, , 17F
還有shared library基本的ld-linux.so.2也要放喔
07/30 22:58, 17F

07/30 23:00, , 18F
再不然就把/lib下的屬性都改成777試試看吧~~
07/30 23:00, 18F

07/31 11:38, , 19F
toolchain是你自己做的還是arm板廠商提供的?
07/31 11:38, 19F

07/31 13:33, , 20F
toolchain是廠商提供的
07/31 13:33, 20F

07/31 13:33, , 21F
我之前也有將C函式庫的ld-linux.so.2放入
07/31 13:33, 21F

07/31 13:34, , 22F
也把execution也一起放在/lib中,不過還是沒用
07/31 13:34, 22F

07/31 19:00, , 23F
export LD_DEBUG=all ; ./hello
07/31 19:00, 23F

07/31 20:21, , 24F
照e大您的說法,也是沒有辦法
07/31 20:21, 24F

07/31 20:21, , 25F
還是一樣顯示找不到檔案
07/31 20:21, 25F
文章代碼(AID): #1ASJDu3e (LinuxDev)
文章代碼(AID): #1ASJDu3e (LinuxDev)