Linux
執行程序沒有這樣的文件或文件夾錯誤
我無法執行簡單的執行檔。
的結果
ll
user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ ll total 16948 drwxr-xr-x 2 user user 4096 avril 18 2014 ./ drwxr-xr-x 8 user user 4096 janv. 18 21:01 ../ -rwxr-xr-x 1 user user 565152 avril 18 2014 armv5-ctng-linux-gnueabi-addr2line* -rwxr-xr-x 2 user user 589764 avril 18 2014 armv5-ctng-linux-gnueabi-ar* -rwxr-xr-x 2 user user 1035780 avril 18 2014 armv5-ctng-linux-gnueabi-as* -rwxr-xr-x 2 user user 624784 avril 18 2014 armv5-ctng-linux-gnueabi-c++* lrwxrwxrwx 1 user user 28 avril 18 2014 armv5-ctng-linux-gnueabi-cc -> armv5-ctng-linux-gnueabi-gcc* -rwxr-xr-x 1 user user 563424 avril 18 2014 armv5-ctng-linux-gnueabi-c++filt*
這就是我執行的方式
armv5-ctng-linux-gnueabi-ar
user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ ./armv5-ctng-linux-gnueabi-ar
這給
No such file or folder
每個文件末尾的 * 是什麼意思——有什麼特別的嗎?
編輯
@Arkadiusz Drabczyk 提出的 manip:
user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ readelf -a armv5-ctng-linux-gnueabi-ar | grep "Requesting program interpreter:" [Requesting program interpreter: /lib/ld-linux.so.2]
@steeldriver 提出的 manip:
user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ arch x86_64
我使用的是 64 位作業系統。
user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ file armv5-ctng-linux-gnueabi-ar armv5-ctng-linux-gnueabi-ar: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=8dac66869f5be2dbb2bee517e289901c4be80db5, stripped
該二進製文件似乎適用於 32 位架構
ELF 32-bit
。
任何幫助,每個文件末尾的 * 是什麼意思有什麼特別的嗎?
您的
ll
別名可能包含-F
在文件名後添加字元的選項。來自man ls
:-F, --classify append indicator (one of */=>@|) to entries
在許多 shell 中,例如您可以使用命令
bash
檢查別名是如何擴展的。type
例如,在我的系統上:
$ type ll ll is aliased to 'ls -Alhtr --color'
現在,您說給您錯誤的文件是二進製文件,因此可能是由於載入程序不正確。嘗試它請求的載入器並確保你擁有它:
$ readelf -a armv5-ctng-linux-gnueabi-ar | grep "Requesting program interpreter:"
如果二進製文件被指定在
x32
系統上執行,它將x32
從/lib
. 如果沒有,它將無法啟動。所以現在,根據您使用的系統,您需要找到一種方法來為您的系統添加 32 位兼容層。例如,Ubuntu
它很簡單——只需一個人apt-get install
就可以完成這項工作,因為Slackware
它在此處進行了描述:http ://docs.slackware.com/slackware:multilib 。