我知道我可以使用一些工具(例如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
(假设核心和消息是唯一已扩展到实际静态包含的依赖项,并且前后修复如图所示。)
答案 0 :(得分:0)
如果您的构建系统支持显示编译命令的模式(例如,某些设置如VERBOSE = 1),您可以尝试grep此输出以查找类似于-l的项(或您的目标的任何其他类型的链接器选项)工具链使用)。