【发布时间】:2015-06-03 13:43:13
【问题描述】:
我有一个Makefile.am 和两个noinst_LIBRARIES,其中一个需要与另一个链接。
将其添加到 CFLAGS 会引发编译器警告,但据我所知,automake 喜欢将 LDADD 与库一起使用,因为它们不是完整的程序。
假设libb.a 需要拉入liba.a,我该怎么做?
【问题讨论】:
-
你不链接静态库,它们被添加到你的二进制文件中。
-
我不清楚您到底想做什么,但请注意,您不能将一个静态库链接到另一个。它们只是目标文件的集合,静态库中没有机制表明它们依赖于另一个库。
-
@nos true,但是如果存在依赖关系,即如果
liba.a使用来自libb.a的符号,那么在二进制文件中包含库时,您必须注意传递它们的顺序。这意味着循环依赖是不允许的。 -
@iharob 可以处理循环依赖,但是在链接使用它们的程序时必须多次提及这些库,例如传递标志
-lA -lB -lA
标签: c linker autotools automake