【发布时间】:2021-11-12 23:28:49
【问题描述】:
我目前正在研究 MD5 的实现,只是因为我很好奇并想更好地了解散列的工作原理。我有 1 个包含所有代码的文件,名为 easy_md5.c,我正在使用以下 Makefile 编译它:
easy_md5: easy_md5.c
gcc -c easy_md5.c -o easy_md5
clean:
-rm -f easy_md5.o
-rm -f easy_md5
我在可执行文件上运行chmod +x easy_md5 以授予它权限,但是当我尝试运行它时出现以下错误:
[gabe@void easy_md5]$ ./easy_md5 hello
bash: ./easy_md5: cannot execute binary file: Exec format error
运行file easy_md5 显示如下:
easy_md5: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
并运行 arch 确认我的机器具有 x86-64 架构。由于它是 64 位可执行文件,因此当我尝试在 64 位机器上运行它时,它没有理由抛出格式错误。出了什么问题?
【问题讨论】:
标签: unix gcc compiler-errors x86-64