GCC 编译后无法执行二进制文件 (RHEL7)

cannot execute binary file after gcc compile (rhel7)

提问人:motor no 提问时间:11/2/2023 最后编辑:Some programmer dudemotor no 更新时间:11/2/2023 访问量:42

问:

我在 RHEL7 上安装了 GCC,并在简单的 C 程序上进行了测试。

编译 cmd :$gcc -o t.exe t.c

我得到的错误

[xxx@svr ~]$ sh t.exe
t.exe: t.exe: cannot execute binary file

请帮帮我。以下是基本信息。谢谢

im 使用操作系统 : [xxx@svr ~]$ uname -a Linux svr 3.10.0-1160.15.2.el7.x86_64 #1 SMP Thu Jan 21 16:15:07 EST 2021 x86_64 x86_64 x86_64 GNU/Linux

gcc 版本 : [xxx@svr ~]$ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) 版权所有 (C) 2015 Free Software Foundation, Inc. 这是免费软件;有关复制条件,请参阅来源。没有 保证;甚至不是为了适销性或特定用途的适用性。

文件 : [xxx@svr ~]$ 文件 t.exe t.exe:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接(使用共享库),用于 GNU/Linux 2.6.32,BuildID[sha1]=c367171e88d862cc02890204cc246741a51f9b17,未剥离

百胜餐饮服务安装信息:安装 1 个软件包(+4 个依赖软件包)

总下载大小:33 M 安装尺寸: 59 M 这可以吗 [y/d/N]:y 下载软件包: (1/5):CPP-4.8.5-44.el7.x86_64.rpm |6.0 兆字节 00:00:00 (2/5):glibc-devel-2.17-326.el7_9.x86_64.rpm |1.1 兆字节 00:00:00 (3/5):glibc-headers-2.17-326.el7_9.x86_64.rpm |691 kB 00:00:00 (4/5):GCC-4.8.5-44.el7.x86_64.rpm |16 兆字节 00:00:00 (5/5):kernel-headers-3.10.0-1160.102.1.el7.x86_64.rpm |9.1 兆字节 00:00:00

Linux GCC

评论

0赞 Some programmer dude 11/2/2023
两件事:首先,在 Linux 上,您不需要像 这样的后缀。可执行文件是可执行的,即使没有此类后缀也可以运行。第二件事是它不是 shell 脚本。它是直接可执行的,你可以运行它,而无需通过 shell 调用它:应该足以运行程序。.exet.exe./t.exe
0赞 motor no 11/3/2023
同意你的看法。无论如何,后缀 .exe 是让我区分 shell 脚本或 C 可执行文件的。

答:

0赞 maxcorry 11/2/2023 #1

“sh”是用于执行脚本的解释器;如果要执行可执行程序(如二进制文件),请直接执行以下命令“./t.exe”。

评论

0赞 motor no 11/3/2023
在我发布这个问题之前,我试过了。它给了我另一个错误。[xxx@svr ~]$ ./t.exe -bash: ./t.exe: 权限被拒绝 [xxx@svr ~]$ ll t.exe -rwxr-x---.1 应用管理员 应用管理员 8352 十一月 2 09:53 t.exe