我想知道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))发布于 2014-12-26 14:25:52
如果这个错误是抱怨它在抱怨什么(我一点也不确定它会/应该是什么),那么我认为解决方案就像添加
AM_LDFLAGS =作为使用+=的foreach循环上方的行。
来自GNU自动手册的8.7 Variables used when building a program部分:
AM_LDFLAGS 这是Makefile.am作者可以用来传递其他链接器标志的变量。在某些情况下,这是不使用的,优先于每个可执行文件(或每个库) _LDFLAGS。
发布于 2014-12-26 09:45:21
_I想知道AM_LDFLAGS和LDFLAGS_之间有什么区别
LDFLAGS是从Autoconf继承的变量,AM_LDFLAGS是由automake定义的变量。
根据自动驾驶系统的手册页,
这是
Makefile.am作者可以用来传递其他链接器标志的变量。在某些情况下,这是不使用的,优先于每个可执行文件(或每个库)_LDFLAGS。
但是,根据提供的这里信息,错误仍然存在,这似乎是变量使用上的一个问题。Automake期望在添加变量之前必须将其设置为某个值。
解决这一问题的正确方法将与Etan Reisner提供的其他答案中提到的方法相同,只需在循环之前显式设置AM_LDFLAGS,如下所示
AM_LDFLAGS = // which "sets" the AM_LDFLAGS然后再做
AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))https://stackoverflow.com/questions/27655278
复制相似问题