Autotools 汽车制造依赖

Autotools 汽车制造依赖,autotools,automake,Autotools,Automake,我有一个名为libunikey.la的static库,还有一个名为ibus unikey的应用程序链接到它 问题是,无论何时重建libunikey.la,都不会重建ibus unikey,因此对libunikey.la的更改不会对ibus unikey生效 我希望无论何时更改libunikey.la,都能像Makefile依赖项那样重建(重新链接)ibus unikey 如何使用automake、GNU autotools实现这一点 \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

我有一个名为
libunikey.la
static库,还有一个名为
ibus unikey
的应用程序链接到它

问题是,无论何时重建
libunikey.la
,都不会重建
ibus unikey
,因此对
libunikey.la
的更改不会对
ibus unikey
生效

我希望无论何时更改
libunikey.la
,都能像Makefile依赖项那样重建(重新链接)ibus unikey

如何使用automake、GNU autotools实现这一点

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

更简单地说,真正的问题是:
当另一个目标/或仅仅是一个文件发生更改时,我如何制定规则强制重新编译目标?(使用automake)

我自己找到了答案,只需为处于相同情况的人发布此答案:
在Makefile.am中添加一行:

my_target_LDADD = path/to/the_dependency  

它将解决问题。

我假设您的初始情况是沿着
\u LDADD=-Lpath/to-lthe\u依赖关系的路线进行的,因此在这种情况下,您可以通过使用
.la
文件的路径来修复它(对于大多数情况)

不过,最好的选择是使用,以便在所有情况下正确扩展
\u LDADD
依赖关系


也就是说,假设您的二进制文件位于
src/
中,而您的库位于
lib/
中-如果您当前的工作目录为
src
,并且您在
lib
中更改了一个文件,则不会导致库被重建,并且二进制文件被重新链接,因为inter-
Makefile.am
依赖项不存在。

你能举个简单的例子来说明这一点吗?您要求的是默认行为。@awoodland:我已经更新了问题,请看一看。