システムメッセージ

システムメッセージ

ソースからソフトウェアをコンパイルした後、通常はコンパイルされたバイナリをダブルクリックして実行できます。

しかし、最近私がコンパイルしたほとんどのバイナリはダブルクリックに応答しません。うまくいっても、./MyBinaryこれは権限の問題ではないようです。なぜなら私がすでにそうしているからですsudo chmod +x

私のLinuxシステムは、コンパイルされたバイナリを次のように認識しているようです。共有ライブラリファイルなので実行されません。

ここに画像の説明を入力してください。

なぜこれが起こるのか知っている人がいますか?この問題を回避するために、ファイル形式を実行可能ファイルに変更できますか?よろしくお願いします。

システムメッセージ

マンジャロ Linux x86_64

カーネルバージョン:5.6.19-2

答え1

ELF移植可能な実行可能ファイルとライブラリは同じシグネチャを持ち、同じように識別できます。私はそれについて心配しません。ドルフィンがあなたに適しているなら、それを使用してください。

例えば

$ file `which file` /usr/lib64/libc-2.31.so
/bin/file:               ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e7df66a91efb28e483449a77221cb4242620541c, for GNU/Linux 3.2.0, stripped
/usr/lib64/libc-2.31.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d278249792061c6b74d1693ca59513be1def13f2, for GNU/Linux 3.2.0, not stripped

バイナリとglibcライブラリの両方が「ELF 64ビットLSB共有オブジェクト」です。

関連情報