系统信息

系统信息

从源代码编译软件后,我通常可以通过双击来启动编译后的二进制文件。

然而最近,我编译的大多数二进制文件都没有响应双击,即使它们可以使用./MyBinary.这似乎不是权限问题,因为我已经这样做了sudo chmod +x

看来我的 Linux 系统将编译的二进制文件识别为共享库文件,因此不会执行它们。

在此输入图像描述

有谁知道为什么会发生这种情况?是否可以将文件类型更改为可执行文件以避免此问题?提前致谢。

系统信息

Manjaro Linux x86_64

内核版本:5.6.19-2

答案1

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

相关内容