Makefile链接问题

时间:2011-09-17 18:49:57

标签: c++ makefile

我写了Makefile以便更简单地运行单元测试(默认目标是测试)。目录结构如下:

lib - 谷歌c ++测试框架

src - 源文件

test - 单元测试

src我有文件a.ha.ccb.cc(其中包含主文件),我想测试在其中定义的类A() a.h。总而言之,因为链接的顺序是:

g++ -Wall -c -o obj/src/a.o src/a.cc

g++ -Wall -c -o obj/src/b.o src/b.cc

g++ -o all obj/src/a.o

我收到错误:

(.text+0x18): undefined reference to main' collect2: ld returned 1 exit status make: *** [all] Error

即使我实际上不需要在main()中定义src,因为我已经在main()中定义了test来运行单元测试。

3 个答案:

答案 0 :(得分:4)

我不太清楚你想做什么,但是如果你的主要是在test.o中,你需要在你的链接线中指定。例如:

g++ -o all obj/src/a.o test.o

答案 1 :(得分:2)

当你说

g++ -o all obj/src/a.o

g++认为您已经要求它构建可执行文件,因此正在寻找入口点。大概你想要问别的东西(图书馆,也许?)。

答案 2 :(得分:0)

即使它无法解决您当前的问题,但知道您正在重新设计automake可能会有所帮助。你现在不应该手工编写C或C ++项目的Makefile。