c - 未定义对 main 的引用 - collect2 : ld returned 1 exit status

标签 c gcc reference

我正在尝试编译一个程序(称为 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.omain.o 合并到一个名为 es3 的可执行文件中。

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

相关文章:

c - gcc2.9到5.3不同的汇编指令

c++ - vector::insert 在 VS2010 中执行意外结果

c++ - 优化行为的差异

c - 在 time.h 中找不到 timespec

c - HDF-EOS 配置失败, "C compiler cannot create executables"

c - 如何获得返回数组而不是打印数组的函数?

linux - Win32 InterlockedIncrement 和 InterlockedExchange 是跨进程的原子吗?

c# - 从类列表中包含的列表中删除字符串

将 void* 转换为 struct* 并读取结构成员值

c++ - 防止 C 整数溢出