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.hpp
和A.a
。我正確地創建一個靜態庫嗎?我應該只把A.o放入檔案庫(這樣做會產生錯誤)嗎?
僅供參考,這是如何使用的類的程序被編譯:
g++ test1.cpp A.a -o test1
編輯:是有辦法隱含告訴鏈接到我的程序與A.A鏈接?就像我不手動需要鏈接它與iostream ...
它現在的工作方式嗎? –
只要你把庫放在使用它的目標文件之後,你應該沒問題。首先放置庫,連接器將無法找到庫中定義的符號(因爲它不知道在掃描庫時需要查找這些符號)。 –
@KerrekSB,是的,它的確如此。請大家看看編輯。 – corazza