我對C++很陌生,我想了解爲什麼某些庫需要首先編譯。已編譯的庫vs僅包含頭文件的庫
例如一些Boost庫只是頭(如MSM)其他一些需要編譯(例如定時器)
我找不到爲什麼會這樣一個很好的解釋。有人能幫助我理解嗎?
謝謝
我對C++很陌生,我想了解爲什麼某些庫需要首先編譯。已編譯的庫vs僅包含頭文件的庫
例如一些Boost庫只是頭(如MSM)其他一些需要編譯(例如定時器)
我找不到爲什麼會這樣一個很好的解釋。有人能幫助我理解嗎?
謝謝
某些種類的東西都保存在頭只,而不是通常的.h(pp)
和.cpp
文件。我所知道的只有一個是模板類和函數。我確信助力會利用。
#include
他們。template
必須在頭文件中定義。但是,通過使用頭文件,可以避開多少人,或者願意忍受多少人是有限制的。例如,處理共享庫中的靜態對象,這對標準一無所知,有時候只是不能在頭文件中完成。
那麼爲什麼我不能在我的代碼中添加.cpp和.h文件(就像我在代碼中包含boost/msm.hpp)並編譯? – Kam
@Kam沒有人說你不能。 – Rapptz
@Kam:不完全是,你不能'#include'那些_cpp_文件,並期望它們工作。但是,您可以將它們添加到您的項目中,並將它們作爲其一部分進行編譯。 –