2010-11-26 49 views
1

我正在使用C++產品。它的設計具有相當大的靈活性,並且越來越大。現在我們計劃在一個項目中進行合作,我們希望貢獻一部分產品:一部分作爲源代碼,一部分作爲靜態鏈接庫,一部分根本不作爲。C++中的「Static plugin」系統(通過編譯系統)

我想保留在這兩個項目中使用的每個源文件的一個版本,並避免分支整個事情等等。所以我想知道我需要什麼能夠在內部具有所有文件的「完整產品」並且還能夠提取這些文件的一部分(每隔一段時間)並將該子集作爲工作單元傳遞給其他人。 (我認爲我們可以確保這些文件未在合作項目的改變,我們只會增加的東西在那裏。)

我想我需要

  • 鬆散耦合,使部分可以軟件架構在不破壞系統的情況下移除。我認爲術語「靜態」插件在這裏是合適的,因爲我認爲我可以從插件系統學習,但我不需要有動態加載它們的能力,它們可以靜態方式鏈接/構建。我希望這可能會迫使我和我的同事通過添加某種插件來擴展系統,而不是在這裏和那裏插入類,從而引入事物之間的耦合。
  • 一個構建系統,支持我通過選擇要構建的插件並通過僅提取我需要的「釋放」新子集來支持我。

是否有任何互聯網資源可能有所幫助。什麼是要搜索的關鍵字?

對於如何處理這個問題你有什麼建議嗎?

回答

4

Dr Dobbs有一個有趣的文章系列,你可能想看看。我似乎記得除了通常的動態鏈接外,它還支持插件的靜態鏈接。檢查出Building Your Own Plugin Framework

祝你好運!

0

首先,你需要像混帳:

http://github.com

管理源。要管理「插件」,無論是否爲靜態,它可能會付出代價來查看現有系統已經這樣做:我可以推薦檢查Python如何執行它(因爲有一個精心指定的C API來管理它)。

我知道的最好的構建系統是.. Python。忘記使:)一個預先構建的是埃裏克Tryzelaars fbuild(可從github)。[嗯,我認爲這是最好的,因爲我使用它:]