发现静态库依赖项

时间:2011-06-20 22:43:49

标签: c build dependencies

我知道我可以使用一些工具(例如gcc -MD ...)来发现构建目标文件时所需的头文件依赖性

是否有类似的方法来确定链接组件时将使用的静态库?

特别是我正在查看一些具有大量间接的多级make文件,我希望能够获得该构建的依赖列表,这样我就可以简化构建系统的重建请求。

例如:

make foo.mak

foo.mak

OBJS = bar.o \
 bar2.o

DEPS = core\
 msg\
 utils\

EXTRA_FLAGS +=  -Wall -Werror

include ../common/common.mak

在common.mak内 DEPS的成员将以各种方式扩展,具体取决于这是什么类型的构建。它们可能是静态的,共享的甚至是内核库,他们可能会得到修复前或修复后的内容。

我想要

ABC_core_DEF.a
GEH_msg_IJK.a

(假设核心和消息是唯一已扩展到实际静态包含的依赖项,并且前后修复如图所示。)

1 个答案:

答案 0 :(得分:0)

如果您的构建系统支持显示编译命令的模式(例如,某些设置如VERBOSE = 1),您可以尝试grep此输出以查找类似于-l的项(或您的目标的任何其他类型的链接器选项)工具链使用)。