2010-12-21 61 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。