在GNU Make文档中,变量LDLIBS和LOADLIBES未记录在其对应的section中。我read认为这些变量仅出于兼容性目的存在,并且它们是等价的(相同含义)。但是,LDLIBS仍在广泛使用。
可以说LDLIBS是一个弃用的变量,还是使用它是安全的?如果没有,为什么LDLIBS被文档忽略了?
GNU制作手册在http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html中说:
下表描述了一些常用的预定义变量。这份清单并非详尽无遗
似乎LOADLIBES
已被弃用,但LDLIBS
不是。因此,manual说:
LDFLAGS
:当编译器应该调用链接器ld
时,给出编译器的额外标志,例如-L
。应将库(-lfoo
)添加到LDLIBS
变量中。
LDLIBS
:当编译器调用链接器ld
时,为编译器提供的库标志或名称。LOADLIBES
是LDLIBS
的弃用(但仍然支持)。非库链接器标志,例如-L
,应该放在LDFLAGS
变量中。