2012-09-18 54 views
0

我想創建一個庫,讓我的程序使用一個類,讓我們稱之爲A,它有一些整潔的方法,等等......但這個類依賴於其他幾個(B和C),並且它將.hpp文件包含在其.cpp文件中。我應該把所有的.o文件放在庫中?

構建過程是這樣的:

g++ -c B.cpp 
g++ -c C.cpp 
g++ -c A.cpp 

ar rvs A.a *.o 

通過這樣做,我的其他項目現在只需要文件,包括我,A級,A.hppA.a。我正確地創建一個靜態庫嗎?我應該只把A.o放入檔案庫(這樣做會產生錯誤)嗎?

僅供參考,這是如何使用的類的程序被編譯:

g++ test1.cpp A.a -o test1 

編輯:是有辦法隱含告訴鏈接到我的程序與A.A鏈接?就像我不手動需要鏈接它與iostream ...

+0

它現在的工作方式嗎? –

+0

只要你把庫放在使用它的目標文件之後,你應該沒問題。首先放置庫,連接器將無法找到庫中定義的符號(因爲它不知道在掃描庫時需要查找這些符號)。 –

+0

@KerrekSB,是的,它的確如此。請大家看看編輯。 – corazza

回答

2

這很好,你現在正在做這件事。把所有的目標文件放到靜態庫中。

相關問題