Как написать программное обеспечение для компиляции с внешними библиотеками?

Я хочу закодировать программное обеспечение с открытым исходным кодом с зависимостями. Я владею навыками в C / C ++ и минимальным знанием makefile. Но им любопытно кодировать это как ./configure && make stuff и как правильно включать зависимости к другим библиотекам.

Где я могу найти легкий для понимания учебник, и трудно ли это узнать?

2 Solutions collect form web for “Как написать программное обеспечение для компиляции с внешними библиотеками?”

Я не считаю, что настроить или сделать сложно. Однако они сложны, поэтому они могут быть сложными для изучения – особенно посредством экспериментов. Например, make требует, чтобы команды для создания цели были отступом строго с символом TAB, который во многих случаях трудно отличить от пробелов.

Вот страница, которая просматривает оба этих (и более): http://autotoolset.sourceforge.net/tutorial.html#Compiling-with-Makefiles .

И страница по стандартам GNU для конфигурации: http://www.gnu.org/prep/standards/html_node/Configuration.html .

Обратите внимание, что autoconf – это инструмент для создания скриптов configure; конечно, вы можете создать собственный скрипт configure, но autoconf получит стандартный сценарий и должен сэкономить много усилий по программированию.

Многие из них выполняются с autoconf . У меня нет учебника, в частности, чтобы рекомендовать (помимо официальной документации), но вам понадобится один, и именно этого вы хотите найти. «Autoconf» в разговорной речи относится к набору инструментов, включая «automake».

Я не делал этого некоторое время, но я попытаюсь набросать процесс из моих заметок:

  • Для каждого исходного каталога (не помещайте свои источники на верхний уровень, помещайте их в подкаталоги), вам нужно создать Makefile.am ; это следует правилам нормального make-файла, но не включает цели компиляции и вместо этого определяет некоторые цели и переменные, следующие за схемой именования, специфичной для процесса autoconf. Это будет обработано automake .

  • На верхнем уровне вам нужно создать файл configure.ac . Инструмент autoscan может сделать это для вас, а затем вы можете настроить его.

  • Затем вам нужно запустить по порядку из каталога верхнего уровня: aclocal , automake -ac autoheader , autoheader (и, возможно, automake -ac снова), затем autoconf . Все они имеют справочные страницы, которые объясняют их цель.

Presto! Ваш пакет готов.

это трудно понять?

Это определенно утомительно, и я бы не назвал это супер легким, нет. Если ваш проект небольшой, и вы ориентируетесь только на определенные платформы, вы можете просто создать собственный скрипт проверки зависимостей, который можно запустить из make-файла.

  • Как найти часть кода, который создает анонимную приватную память
  • Построить log4cxx
  • Проблема со словом ntpd
  • Отправка сигнала SIGINT для обработки при выполнении системного вызова или скрипта killall -SIGINT
  • Как сделать программу, которая будет реагировать на нажатие кнопки (например, «больше» на «q»)
  • Внешняя команда для принудительного сброса потока
  • Как установить g ++ 4.7.2 и c ++ 11 на CentOS 5.x?
  • Ошибка при использовании stat, errno = 2
  • Как выбрать время чтения и записи?
  • Скрипт мониторинга, запущенный rc.local
  • Как Node.js / модуль кластера передает новые соединения из процесса master / parent, дочерних процессов?
  • Linux и Unix - лучшая ОС в мире.