[英]Makefile linking issues
我编写了Makefile,以便以更简单的方式运行单元测试(默认目标是test)。 目录结构如下:
lib
-Google C ++测试框架
src
源文件
test
-单元测试
在src
我有文件ah
, a.cc
, b.cc
(保存main),我想测试在ah
定义的A()
类。 总而言之,因为链接的顺序是:
g++ -Wall -c -o obj/src/ao src/a.cc
g++ -Wall -c -o obj/src/bo src/b.cc
g++ -o all obj/src/ao
我得到错误:
(.text+0x18): undefined reference to main' collect2: ld returned 1 exit status make: *** [all] Error
即使我实际上不需要src
定义的main()
,因为我已经在test
中定义了一个main()
来运行单元测试。
我不太了解您要做什么,但是如果您的主要内容在test.o之内,则需要在链接行中指定。 例如:
g++ -o all obj/src/a.o test.o
当你说
g++ -o all obj/src/a.o
g++
认为您已要求它构建可执行文件,因此正在寻找入口点。 大概是您要问的其他问题(也许是一个库?)。
即使它不能解决您当前的问题,了解您正在重新设计automake
可能也会有所帮助。 现在,您不应该手工为C或C ++项目编写Makefile。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.