Ссылка только один раз на библиотеку
У меня есть основное приложение и две библиотеки: foo и bar. foo использует bar в некоторых методах, и он указан в LDADD. Мое основное приложение использует foo и косвенно bar, поэтому в Makefile оно имеет LDADD = foo.
В этом случае, если я не добавлю библиотеку баров в LDADD для моего основного приложения, я получу ошибку компиляции.
Неопределенные ссылки; и это говорит о том, что.so файлы из foo требуют.so файлы из бара.
Я не понимаю этого. Как только я компилирую (нестатический) foo с LDADD = bar, зачем он мне снова нужен, когда я компилирую приложение, использующее foo?
1 ответ
Вы не указываете, если foo
и / или bar
библиотеки libtool, созданные как часть дерева исходных текстов Если это так, libtool должен взять ссылки. т.е. с foo
требует bar
как часть библиотеки:
libfoo_la_LIBADD = ../bar/libbar.la # in: foo/Makefile.am
а также,
prog_LDADD = ../foo/libfoo.la # in: app/Makefile.am