Bash

找不到文件的文件

  • July 19, 2012

可能重複:

“沒有這樣的文件或目錄”位於 Optware 安裝的二進製文件中

我目前正在嘗試讓一些硬體在嵌入式設備上工作。驅動程序的一部分是執行檔,必須啟動它才能使硬體工作。但是,當我嘗試執行它時,我得到

bash: no such file or directory

我已經檢查過,文件肯定在那裡,執行檔等。我在網上四處查看,我發現這也可能與編譯文件的架構和我正在使用的架構之間的問題有關。但是我找不到任何錯誤。這是我執行的一些診斷:

root@desktop:~# /usr/local/eGTouchARMwithX/eGTouchD
bash: /usr/local/eGTouchARMwithX/eGTouchD: No such file or directory
root@desktop:~# ls -l /usr/local/eGTouchARMwithX/eGTouchD
-rwxr-xr-x 1 root root 198870 Jul 19 14:11 /usr/local/eGTouchARMwithX/eGTouchD
root@desktop:~# file /usr/local/eGTouchARMwithX/eGTouchD 
/usr/local/eGTouchARMwithX/eGTouchD: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@desktop:~# uname -a
Linux desktop 3.2.0-1415-omap4 #20-Ubuntu SMP PREEMPT Mon Jun 18 19:03:59 UTC 2012 armv7l armv7l armv7l GNU/Linux
root@desktop:~# file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0x1266f80916e3e59eb001459610510f5d05630297, stripped
root@desktop:~# ldd /usr/local/eGTouchARMwithX/eGTouchD
       not a dynamic executable

我唯一的提示是file將此文件報告為動態連結的執行檔,而ldd將其報告為不是動態執行檔。

任何想法文件可能有什麼問題以及如何解決這個問題?

雖然架構是相同的,並且此消息通常表明二進製文件是針對外部架構的,但此消息的真正含義是它連結到不兼容的 C 執行時庫。

在 Linux From Scratch網站上查看此消息。在他的情況下,升級 glibc 給了他幾個(但不是全部)命令的這個錯誤。

您需要安裝與二進製文件匹配的正確 C 執行時庫或獲取與您的 C 執行時庫匹配的二進製文件。

這可能來自使用共享庫(特別是 ld.so 又名動態載入器)時 libc 中的任何不匹配,這在 glibc 盒上使用共享 uclibc 時非常常見,反之亦然。我建議您使用通用靜態工具鏈,直到您獲得可用的本地共享工具鏈。 http://landley.net/aboriginal有一個引導工具鏈,用於預建的幾種架構。

引用自:https://unix.stackexchange.com/questions/43481