我正在尝试编译一个程序(称为 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
函数的文件 main.c
,并且链接器将 es3.o
和 main.o
合并到一个名为 es3
的可执行文件中。
关于c - 未定义对 main 的引用 - collect2 : ld returned 1 exit status,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965437/