指定makefile位置以链接库

时间:2010-12-21 16:00:55

标签: linker makefile

我最近在一个正在研究的项目中偶然发现了这个问题。在包A中,有一个必需的配置选项--package-B-makefile-locationA的makefile借用了变量值。

这是一种具有优点的常见设计模式吗?在我看来,B的包源与其用于编译A的二进制文件一样重要。可能有理由我不想篡改它吗?

谢谢,

安德鲁

2 个答案:

答案 0 :(得分:0)

这是一种常见且有用的设计模式,但它可以像其他任何一样被滥用。

我不确定我是否理解你问题的第二部分,但是如果makefile设计得很好,那么你对B的makefile所做的任何改变都不会破坏A。

答案 1 :(得分:0)

一个软件包需要预先安装其他软件包,这一点远非闻所未闻,您必须指定这些位置。

例如,构建GCC(4.5.2),如果默认情况下找不到它们,则需要指定GMP,MPFR和MPC库的位置。

可扩展的复杂系统 - Perl,Apache,Tcl / Tk,PHP - 以各种方式为其用户提供配置数据(Perl的Config.pm,Apache的apxs等),但配置数据对于依赖是至关重要的模块。

我怀疑您的Package A需要一些与Package B相关的配置数据,但是没有一个完全成熟的系统来提供它。作为一种解决方法,Package A需要查看封装在makefile中的配置数据。

需要makefile是不常见的;需要一些关于其他包的信息并不罕见。