Executable

標記為共享庫文件的可執行二進製文件

  • August 16, 2020

從原始碼編譯軟體後,我通常可以通過點兩下啟動編譯的二進製文件。

然而,最近,我編譯的大多數二進製文件都沒有響應點兩下,即使它們可以使用./MyBinary. 這似乎不是權限問題,因為我已經完成了sudo chmod +x

看來我的 Linux 系統將已編譯的二進製文件辨識為共享庫文件,因此不執行它們。

在此處輸入圖像描述

有誰知道為什麼會這樣?是否可以將文件類型更改為執行檔以避免此問題?提前致謝。

系統資訊

手動 Linux x86_64

核心版本:5.6.19-2

ELF 可移植執行檔和庫可能具有相同的簽名並被相同地標識。我不會為此擔心的。如果 Dolphin 適合您,請使用它。

例如

$ 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 共享對象”。

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