`gcc -c -Wall hello.c`
bash: ./hello.o: cannot execute binary file: Exec format error
需要帮助..
答案 0 :(得分:0)
.o是目标文件,不是可执行文件。这是一个中间步骤。 -c选项只是说要执行此步骤。您仍然必须将该目标文件链接到可执行文件中。
答案 1 :(得分:0)
这些是您要的选项
-c
编译或汇编源文件,但不链接。只是没有完成链接阶段。最终输出是以每个源文件的目标文件的形式。
默认情况下,源文件的目标文件名是通过将后缀“ .c”,“。i”,“。s”等替换为“ .o”而制成的。
不需要编译或汇编的无法识别的输入文件将被忽略。
-o file
将输出放置在文件文件中。这适用于所产生的任何类型的输出,无论是可执行文件,目标文件,汇编文件还是经过预处理的C代码。
如果未指定-o,则默认值为将可执行文件放置在a.out中,将source.suffix的目标文件放置在source.o中,将其汇编器文件放置在source.s中,将预编译的头文件放置在source中。 suffix.gch,以及所有在标准输出中预处理的C源代码。
使用第一个选项,您将拥有一个目标文件,而不是可执行文件,因此您将无法执行它