В настоящее время я пытаюсь включить библиотеку libtool из другого проекта, который находится рядом с моим текущим проектом. Я могу проверить библиотеку в конфигурации с помощьюAutotools: top_srcdir и abs_top_srcdir пустые
LDFLAGS="$LDFLAGS -L$top_srcdir../otherproject/libotherproject/.libs/"
AC_CHECK_LIB([otherproject],[init],[],[AC_MSG_ERROR([No otherproject libary found.])])
в моей конфигурации.ac. Пока все в порядке. Но если я построить проект, используя сделать, я получаю сообщение об ошибке от Libtool в то время как он находится в currentproject/источники /:
../libtool: line 5986: cd: ../otherproject/libotherproject/.libs/: No such file or directory
libtool: link: cannot determine absolute directory name of `../otherproject/libotherproject/.libs/'
, логично, потому что это должно быть что-то вроде ../../otherproject/libotherproject/.libs/
. Я пытался отладить, что и обнаружили, что, если это использовать
AC_MSG_NOTICE([Top src dir is: $top_srcdir])
в configure.ac, сценарий конфигурации говорит мне
configure: Top src dir is:
только. Такое же поведение для $ abs_top_srcdir. $ srcdir - это "." всегда. Я немного вычислил документацию и обнаружил, что $ builddir всегда должен быть «.», Но также пуст в моем случае. Это ошибка? Может, я забыл позвонить AC_init_anything
? Спасибо за вашу помощь!
Не уверен, что вы действительно хотите использовать подкаталог '.libs' с libtool. Вы должны просто передать '/libxxx.la'. Какие шаги вы используете для генерации скриптов 'configure' и шаблонов 'Makefile.in'? –
im обычно выполняет autoconf и automake для создания моих файлов. Где я должен пройти путь к .la-файлу? – Martze