AM_LDFLAGS 和 LDFLAGS 有什么区别

2024-01-10

我想知道 AM_LDFLAGS 和 LDFLAGS 之间有什么区别,因为我遇到了错误

error: AM_LDFLAGS must be set with '=' before using '+='

当我在 foreach 循环中使用 AM_LDFLAGS 时 我的make文件代码如下所示:

program_INCLUDE_DIRS := /usr/bin/PR__bin

program_LIBRARY_DIRS := /usr/lib/PR__lib

CFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))

AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))

_我想知道AM_LDFLAGS和LDFLAGS有什么区别_

LDFLAGS是从Autoconf继承的变量,AM_LDFLAGS是automake定义的变量。

根据汽车制造商手册页 http://www.gnu.org/software/automake/manual/html_node/Program-Variables.html,

这是变量Makefile.am作者可以用来传递额外的链接器标志。在某些情况下,不使用此选项,而是优先于每个可执行文件(或每个库)_LDFLAGS.

但是,关于错误,根据提供的信息here https://groups.google.com/forum/#!topic/ode-users/yixmidOpyoQ,看起来像是变量使用上的问题。 Automake 期望该变量必须设置为some值之前可以appended.

解决此问题的正确方法与中提到的方法相同其他答案 https://stackoverflow.com/a/27658342/2173917由 Etan Reisner 提供,简单地说set the AM_LDFLAGS明确地在循环之前,类似

AM_LDFLAGS =     // which "sets" the AM_LDFLAGS

然后做

AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AM_LDFLAGS 和 LDFLAGS 有什么区别 的相关文章

随机推荐