2010-12-21 63 views
0

我最近偶然發現了這個項目,我正在處理這個項目。在包A中,有一個必需的配置選項--package-B-makefile-location,其中A的makefile借用變量值。指定makefile位置來鏈接庫

這是一個常見的設計模式,有其優點嗎?在我看來,B的封裝源與編譯A的二進制文件同樣重要。可能有我不想篡改它的原因嗎?

感謝,

安德魯

回答

0

對於需要預裝其他軟件包的軟件包而言,這是遠遠聞所未聞的,您必須指定這些位置。

例如,構建GCC(4.5.2),您需要指定GMP,MPFR和MPC庫的位置(如果默認情況下不會找到它們)。可擴展的複雜系統 - Perl,Apache,Tcl/Tk,PHP - 以各種方式向用戶提供配置數據(Perl的Config.pm,Apache的apxs等),但配置數據對於從屬模塊。

我懷疑你的軟件包A需要一些與軟件包B有關的配置數據,但是沒有一個完整的系統來提供它。作爲一種解決方法,軟件包A需要查看封裝在makefile中的配置數據。

這是不常見的需要makefile;需要一些關於其他軟件包的信息並不罕見。

+0

如果我唯一要做的就是共享對象庫,那麼您認爲可以安全地假設我可以開始取出這個makefile依賴關係嗎? – ajwood 2010-12-22 01:07:19

0

這是一個常見的和有用的設計模式儘可能去,但它可能會被濫用像任何其他。

我不確定我是否理解你問題的第二部分,但是如果makefile設計得很好,那麼你對B的makefile的任何修改都不會破壞B,也不會破壞A。