就我而言,我們有一個很大的C++代碼庫,我認爲如何使用頭文件存在問題。C++模塊之間的頭文件依賴關係
有許多Visual Studio項目,但問題是在概念上,並與VS無關。每個項目都是一個模塊,執行特定的功能。每個項目/模塊都被編譯爲庫或二進制文件。每個項目都有一個包含所有源文件的目錄 - * .cpp和* .h。一些頭文件是模塊的API(我的意思是頭文件的子集聲明創建的庫的API),一些頭文件是內部的。
現在的問題 - 當模塊A需要使用模塊B時,比A增加B的源目錄以包含搜索路徑。因此編譯時A會看到所有B的模塊內部頭文件。
作爲一個副作用,開發人員不會被迫集中每個模塊的確切API,我認爲這是一個壞習慣。
我認爲它應該放在第一位。我曾想過在每個項目中創建一個僅包含接口頭文件的專用目錄。允許使用該模塊的客戶端模塊僅包含接口目錄。
這種方法好嗎?問題如何解決?
UPD在我以前的地方,開發是在Linux上用g ++/gmake完成的,我們確實用API API頭文件安裝到一個公共目錄是一些解決方案。現在我們有使用cmake生成項目文件的Windows(Visual Studio)/ Linux(g ++)項目。我如何強制Visual Studio中的API頭文件的預生成安裝?
感謝 梅德
我相信Google會將其所有內部標題放在名爲internal的文件夾中。 – xian 2009-07-21 17:54:45