You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位x86-64机器运行编译的64位程序报Exec format error原因查询

问题原因

你使用的编译指令存在参数错误:gcc命令的-c选项的作用是只完成编译、汇编流程,跳过最终的链接步骤,生成的是可重定位目标文件(仅包含汇编后的机器码、未完成地址重定位,属于编译过程的中间文件,后缀通常为.o),而非可以直接运行的可执行程序。

你执行file命令返回结果中的relocatable字段已经明确了文件类型,这类文件本身就不具备可执行的条件,和系统架构是否匹配无关,因此就算额外添加可执行权限也无法正常运行,会触发格式错误提示。

修复方案

直接修改Makefile中的编译规则,删除-c参数即可:

easy_md5: easy_md5.c
    gcc easy_md5.c -o easy_md5

clean:
    -rm -f easy_md5

修改后重新执行make编译,生成的文件就是正常的可执行程序,可以直接运行。

内容的提问来源于stack exchange,提问作者Gabriel Kelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:39:01