2012-08-27 63 views
0

我有一個C++程序,它由許多.cpp文件組成。將一個大的C++程序拆分成幾個組件

我想介紹一些物理解耦方法,通過爲程序的某個功能獲取一堆.cpp文件,然後將該功能編譯爲單獨的.dll/dylib文件。

當這樣做時,dylib將不會鏈接,因爲它調用「主」應用程序中的許多(100s)功能。我有什麼選擇來解決這個問題? (平臺:osx,windows和linux)

回答

4

這個問題沒有簡單的答案。撤消big ball of mud是一門藝術,不是科學。我將從你的位置開始的基本方法是添加第三個組件,其中包括那些100個函數,並使其成爲主應用程序和功能dll的依賴關係。這可能是一個兔子洞,然而當你試圖確定什麼是真正的系統的「葉子」組件。

Martin Fowler's info on refactoring有很多很好的資源。

相關問題