単純な実行可能ファイルを実行できません。
結果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
。
答え1
助けてください。各ファイルの末尾にある*はどういう意味ですか?特別なものはありますか?
エイリアスには、ファイル名の後に文字を追加するオプションをll
含めることができます。-F
からman ls
:
-F, --classify
append indicator (one of */=>@|) to entries
多くのシェルで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
ように、1人だけがこれを行います。Slackware
http://docs.slackware.com/slackware:multilib。