RHEL7环境下GCC编译后无法执行二进制文件求助
问题:RHEL7下编译的二进制文件执行报错
在RHEL7系统上使用GCC编译简单C程序,编译命令为:
gcc -o t.exe t.c
执行时使用sh t.exe命令,出现错误:
t.exe: t.exe: cannot execute binary file
关键信息
系统信息
[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) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
目标文件信息
[xxx@svr ~]$ file t.exe t.exe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=c367171e88d862cc02890204cc246741a51f9b17, not stripped
GCC安装情况
通过yum安装了1个主包及4个依赖包,总下载大小33M,安装大小59M。
解决方案
直接执行二进制文件:无需使用
sh命令,直接运行:./t.exe(当前目录默认不在系统
PATH环境变量中,因此必须加上./指定当前路径)错误原因:
sh是用于执行shell脚本的解释器,而t.exe是ELF格式的原生二进制可执行文件,并非shell脚本。从file命令的输出可以确认,该文件是适配x86_64架构的Linux可执行程序,不需要通过shell解释器执行。权限检查(可选):如果直接执行提示权限不足,可执行以下命令添加可执行权限:
chmod +x t.exe
内容的提问来源于stack exchange,提问作者motor no
相关产品推荐
相关产品推荐

