2011-08-27 139 views
1

我有兩個項目,它們有一些共同的頭文件,所以它們都包含這些頭文件。現在我的問題是:我可以在外部cpp文件中實現這些標頭。例如,當頭文件在項目中時,您只需聲明函數並在.cpp文件中實現它們,並且因爲.cpp文件在項目中,編譯器將知道在哪裏獲得這些函數的實現。外部頭文件包含在C++中

那麼我該怎麼做外部標題?包括.h和.cpp?實現.h內的所有功能?

謝謝。

回答

0

這取決於你想要完成什麼。我有效的解決方案是創建一個「頭只」文件,其中的實現在聲明中。 boost庫的很大一部分是這樣做的。

另一種選擇是將您的通用代碼放在另一個項目中並鏈接到它。

3

通常,您將爲在cpp文件中找到的定義創建一個動態或靜態庫 - 這些是您共享標題中聲明的導出定義。

然後你會將你的應用程序/可執行文件鏈接到該庫。

鏈接過程中,鏈接器將在您所創建的靜態/動態庫中找到應用程序引用的符號。如果您已正確實施並配置所有內容,則不會出現鏈接器錯誤。