问题描述
我试图编译程序(称为ES3),但是,当我从终端写的:
I'm trying to compile a program (called es3), but, when I write from terminal:
的gcc -o es3.c ES3
看来这个消息:
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
我能做什么?
推荐答案
这意味着 es3.c
没有定义主
函数,并且正试图创建一个可执行文件出来。一个可执行文件需要有一个入口点,因此连接器抱怨。
It means that es3.c
does not define a main
function, and you are attempting to create an executable out of it. An executable needs to have an entry point, thereby the linker complains.
要只编译成目标文件,使用 -c
选项:
To compile only to an object file, use the -c
option:
gcc es3.c -c
gcc es3.o main.c -o es3
以上编译 es3.c
到目标文件,然后编译文件的main.c
,将包含在主
函数,链接器合并 es3.o
和 main.o中
到名为 ES3
。
The above compiles es3.c
to an object file, then compiles a file main.c
that would contain the main
function, and the linker merges es3.o
and main.o
into an executable called es3
.
这篇关于未定义参考主 - collect2:LD返回1退出状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!