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

Я хочу закодировать программное обеспечение с открытым исходным кодом с зависимостями. Я владею навыками в 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-файла.

  • Запуск исполняемого файла как службы на порту
  • Как я могу (легко) сопоставить узел блока устройств с каталогом, на котором он установлен?
  • Существует ли стандартный / общепринятый способ для библиотеки плагинов идентифицировать свое местоположение на диске?
  • Java-эквивалент strace
  • Как получить статус проверки подлинности с последнего запуска модуля PAM
  • Может ли Qt SDK использоваться для разработки на любом дистрибутиве Linux?
  • Получить статистику использования CPU из программы C
  • Как определить, какая версия Berkeley DB используется для базы данных RPM?
  • Ошибки при компиляции кода C
  • Найти информацию о USB-устройствах на C ++
  • Какой процесс обновляется / proc / scsi / scsi?
  • Как явно загружать интерпретатор оболочки в программу C
  • Linux и Unix - лучшая ОС в мире.