【发布时间】:2011-02-15 00:44:17
【问题描述】:
我正在开发一个包含大约 30 个源文件 (.c) 的 C 项目。我正在使用 GNU 工具在 Ubuntu 上运行的 32 位微控制器 (i.MX515) 上构建这个项目。
编译阶段成功完成,但是当链接过程开始时,我收到此错误(对于问题末尾的完整错误):
In function `_start': init.c:(.text+0x30): undefined reference to `main'
我有一个main() 函数,它执行一个简单的printf()。
用于链接的 Makefile 行,如下所示。
final: $(OBJDIR)/main.o $(OBJDIR)/TchClaKnn_BuildKdtreeInt.o $(OBJDIR)/TchClaKnn_FreeKdtreeInt.o.... (Go upto 30 files like this)
@echo ".Linking"
$(CC) $(LFLAGS) -o $(OBJDIR)/main.o $(OBJDIR)/TchClaKnn_BuildKdtreeInt.o $(OBJDIR)/TchClaKnn_FreeKdtreeInt.o..... (Go upto 30 files like this)
求救!!!
问候
维克拉姆
完全链接错误
/usr/lib/gcc/arm-linux-gnueabi/4.3.3/../../../crt1.o: In function `_start':
init.c:(.text+0x30): undefined reference to `main'
collect2: ld returned 1 exit status
make[1]: *** [final] Error 1
make[1]: Leaving directory `/home/ubuntu/Documents/Project/IMX_Project_v1'
make: *** [all] Error 2
【问题讨论】:
-
main() 是否在 main.c 中(编译为 main.o)?
标签: c linker undefined-reference