我正在尝试编译程序(称为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.o
和main.o
合并为一个可执行文件es3
。关于c - 未定义对main的引用-collect2:ld返回1退出状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7965437/