You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Libtool生成的Makefile中调用其他目录的非Libtool模块Makefile?

嗨,这事儿其实不用直接改Libtool生成的Makefile,咱们通过Makefile.am就能轻松实现,而且能保证后续重新生成Makefile时不会丢失修改。下面是具体的步骤:

1. 修改all目标的依赖

在你主项目的Makefile.am里,直接重新定义all目标,让它先构建你的新模块,再执行原来的all-am(也就是Libtool负责构建的核心部分):

all: new-module all-am

2. 添加new-module的构建规则

紧接着在Makefile.am里加上这个额外模块的构建规则,推荐用make -C的方式切换目录,比cd && make更稳妥(尤其是并行构建场景下):

new-module:
	$(MAKE) -C new-module-src

3. 可选:添加清理规则(方便后续维护)

如果需要让make clean也能同步清理新模块的编译产物,可以在Makefile.am里补充clean-local规则:

clean-local:
	$(MAKE) -C new-module-src clean

为什么这样可行?

Automake会把你在Makefile.am里定义的规则整合到最终生成的Makefile中,重新定义的all目标会覆盖默认的all: all-am规则,而new-module的自定义规则会被自动加入构建流程。这样每次运行make all时,都会先完成额外模块的构建,再执行Libtool的原有逻辑,完全不用把额外模块整合进Libtool体系里。

内容的提问来源于stack exchange,提问作者tweet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:23:11