我正在尝试编译程序(称为es3),但是,当我从终端编写时:
gcc es3.c -o 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没有定义main函数,而您正在尝试从中创建可执行文件。可执行文件需要具有入口点,从而链接程序会抱怨。

要仅编译为目标文件,请使用-c选项:

gcc es3.c -c
gcc es3.o main.c -o es3

上面的代码将es3.c编译为一个目标文件,然后编译一个包含main.c函数的文件main,链接器将es3.omain.o合并为一个可执行文件es3

关于c - 未定义对main的引用-collect2:ld返回1退出状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7965437/

10-11 15:32