автоматическая зависимость - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть статическая библиотека с именем libunikey.la и приложение с именем ibus-unikey, которое ссылается на нее.

Проблема в том, что всякий раз, когда libunikey.la перестраивается, ibus-unikey не перестраивается, поэтому изменения libunikey.la не вступают в силу для ibus-unikey.

Я хочу, чтобы ibus-unikey перестраивался (перекомпоновывался) при каждом изменении libunikey.la, как это делает зависимость от Makefile.

Как это сделать с automake, GNU autotools?

_ __ ОБНОВЛЕНИЕ __ _ __ _ ___

Чтобы упростить задачу, реальный вопрос: Как я могу создать правило для принудительной перекомпиляции цели при изменении другой цели / или просто файла? (с automake)

Ответы [ 2 ]

1 голос
/ 04 июня 2014

Я предполагаю, что ваша начальная ситуация была в соответствии с _LDADD = -Lpath/to -lthe_dependency, так что да, в этом случае вы исправили это (для большинства ситуаций), используя путь к файлу .la.

ЛучшийОпция, однако, заключается в том, чтобы использовать нерекурсивный automake, чтобы зависимость _LDADD правильно расширялась во всех случаях.

А именно, скажем, ваш двоичный файл находится в src/ и ваша библиотека находится в lib/ - если ваш текущий рабочий каталог src и вы изменили файл в lib, это не приведет к перестройке библиотеки, и ваш двоичный файл будет перезаписансвязаны, потому что меж- Makefile.am зависимости не существуют.

0 голосов
/ 20 февраля 2012

Нашел ответ сам, просто опубликуйте этот ответ для тех, кто в такой же ситуации:
добавить строку в Makefile.am:

my_target_LDADD = path/to/the_dependency  

Это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...