В настоящее время я работаю над обновлением набора двоичных файлов C++, каждый из которых использует свой собственный набор Makefile для чего-то более современного, основанного на Autotools. Однако я не могу понять, как включить стороннюю библиотеку (например, Oracle Instant Client) в процесс сборки/упаковки.Autotools: Включая предварительно созданную стороннюю библиотеку
Это что-то действительно простое, что я пропустил?
Изменить, чтобы добавить больше деталей
Моя текущая среда сборки выглядит следующим образом:
/src
/lib
/libfoo
... source and header files
Makefile
/oci #Oracle Instant Client
... header and shared libraries
Makefile
/bin
/bar
... source and header files
Makefile
Makefile
/build
/bin
/lib
build.sh
Сегодня верхний build.sh уровень выполняет следующие действия:
- Запускает каждый файл Make's lib и копирует вывод в/build/lib
- Запускает каждый бинар y Makefile и скопировал вывод в/build/bin
Каждый Makefile имеет набор жестко установленных путей к различным каталогам родственных сестер. Излишне говорить, что это стало кошмаром для поддержания. Я начал тестировать autotools, но там, где я застрял, вычисляется эквивалент копирования /src/lib/oci/*.so в/build/lib для компоновки времени, связывающего и связывающего в дистрибутив.
Что это за программа от autotools так или иначе ... –
Ее встроенный набор программ, которые я использую на работе. – chotchki
Ну, есть обычные механизмы autotools для проверки и/или включения для библиотек, начиная с 'AC_SEARCH_LIBS', или просто используя' myprog_LDADD = -loic-foo' ... при условии, что все еще существует в вашей производной, о которой мы ничего не знаем. –