[英]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.