2012-01-18 55 views
2

我想重新構建一個包含多個部分的大型C++項目。我將列出一些這部分還有一些屬性,其希望應該考慮的:用於大型C++項目的插件,dll和第三方工具的結構

  • 基類的,這僅限於開發商的獨立的小團體。這是大約15個DLL
  • MainProject,這是所有開發人員的開源代碼,約有10個DLL。
  • 幾個插件項目,爲每個插件成員組打開(每個插件都是一組特殊的開發人員),目前大約有20個插件-DLL。
  • 第三方的東西,如PDF Lib,Boost(未來也許還有wxWidgets),一些幾何體等等。大多數有源碼,有些不是。

目前這是與VisualStudio在Windows操作系統(現在只有32Bit)開發與MFC和ATL的小東西。使用SVN和GIT進行版本化(最後用於某些第三方庫)。

要進一步觀察,我們希望(也許有)創建一個多平臺應用程序。 從長遠來看,這應該在不同的平臺上工作,並使用跨平臺工具等。 所有部件的單一生成運行將非常好。也許CMake可以在這裏幫忙。

我已經閱讀了很多關於結構等的問題,但找不到正確的答案。此外,書架上還有API Design或John Lakos「Large Scale」等書籍。我還研究了幾個開源項目。

是否有關於如何爲這樣的應用程序創建文件夾和項目結構和依賴關係的建議/經驗/技巧/書籍?

由於提前, 豪伊

+1

的Qt可能是靈感的源泉。 – 2012-01-18 13:00:53

+1

我不期望對如此廣泛的問題有一個很好的答案。嘗試分割它,例如「跨平臺構建」,「如何有效處理大型項目中的不同源代碼控制」,「大型項目的目錄結構」等。 – 2012-01-18 13:13:32

回答

2

好吧,我建議你做的軟件模塊的分離。也基於相同的目錄創建一個目錄結構。

看起來是這樣的:

  • / - 包含CMakeLists(或你的Makefile),許可證和更多...
  • /DEPS - 所有項目的依賴關係(如CMake Modules,Embbed Librarys)
  • /docs - Doxygen Documentation
  • /包括 - 包含「基地。h」的報頭例如
  • /包含/ MODULENAME - 一些模塊的集管
  • /源 - 一般源文件
  • /源極/ MODULENAME - 特定模塊源文件
  • /插件 - 插件在DLL或東西

嗯,我認爲這是一個很好的結構。我建議您查看Qt,Boost,MongoDB和其他大型項目的源代碼。

或者你可以看看我的項目在GitHub: Sundry Framework

+0

我知道這是一個廣泛的問題。但是分解這個問題會導致對於某個特定任務的更多不同的答案,其中有些答案不適合整個問題(這是我的觀點)。 – howieh 2012-01-19 08:19:54

+0

提及的項目現已停止。 – lorefnon 2013-03-14 21:09:44

相關問題