automake依赖

时间:2012-02-19 13:21:24

标签: autotools automake

我有一个名为libunikey.la静态库,以及一个名为ibus-unikey的应用程序链接到它。

问题是,每当重建libunikey.la时,ibus-unikey都不会重建,因此对libunikey.la的更改不会对ibus-unikey生效。

每当ibus-unikey发生更改时,我希望libunikey.la重建(重新链接),这与Makefile依赖的方式相同。

如何使用automake,GNU autotools?

_ __ 更新 __ _ __ _ ___

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

2 个答案:

答案 0 :(得分:1)

我假设您的起始情况与_LDADD = -Lpath/to -lthe_dependency一致,所以在这种情况下,您可以使用.la文件的路径修复它(对于大多数情况而言)。

但最好的选择是使用non-recursive automake,以便在所有情况下都能正确扩展_LDADD依赖关系。

即,让我们说你的二进制文件在src/,你的库在lib/ - 如果你当前的工作目录是src并且你在{{}中更改了一个文件1}},会导致重建库,并且二进制文件重新链接,因为不存在inter lib依赖项。

答案 1 :(得分:0)

找到自己的答案,只为那些处于相同情况的人发布这个答案:
在Makefile.am中添加一行:

my_target_LDADD = path/to/the_dependency  

它将解决问题。