我的C程序无法运行`无法执行二进制文件:执行格式错误`

Ank*_*054 5 c

我刚刚开始使用C.我正在尝试编译下面的代码并执行它,但是我收到了一个错误.

还运行size在BS或数据堆栈中什么都不显示?

#include<stdio.h>
/* test.c:  My first C program on a Linux */
int main(void)
{
 printf("Hello! This is a test prgoram.\n");
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译工作:

gcc -c test.c -o test
Run Code Online (Sandbox Code Playgroud)

执行:

bash: ./test: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)

尺寸:

  text     data     bss     dec     hex filename
    108       0       0     108      6c test
Run Code Online (Sandbox Code Playgroud)

Pau*_* Bu 13

好吧,因为没有人想要说出原因...你需要删除-c选项,因为 根据该男子:

-c选项表示不运行链接器.然后输出由汇编器输出的目标文件组成.

所以基本上,你不是创建一个完全可执行的文件,而只是创建目标文件.

以下是有关编译工作原理的一些快速信息:http://courses.cms.caltech.edu/cs11/material/c/mike/misc/compiling_c.html