Что такое пакеты -devel?

Какова полезность пакетов devel, таких как «libgtk + -devel» или «python-devel» и т. Д.? Они содержат источник библиотеки? Как он отличается от пакетов, отличных от devel, таких как libgtk +?

Пакеты *-dev (обычно называемые *-dev в дистрибутивах на основе Debian) обычно являются файлами, необходимыми для компиляции кода с данной библиотекой.

Для запуска приложения, использующего библиотеку libfoo только фактический файл общей библиотеки ( *.so.* , Например libfoo.so.1.0 ) (плюс, возможно, некоторые файлы данных и некоторые символические ссылки на конкретные версии).

Когда вы действительно хотите скомпилировать приложение C, которое использует эту библиотеку, вам понадобятся файлы заголовков ( *.h , например foo.h ), которые описывают интерфейс этого приложения, а также символическую ссылку без ссылки на общую библиотеку ( *.so , например, libfoo.so -> libfoo.so.1.0 ). Обычно они includeся в пакеты *-devel .

Иногда пакеты *-devel также include статически скомпилированные версии библиотек ( *.a , например libfoo.a ), если вы хотите создать полное автономное приложение, которое вообще не зависит от динамических библиотек.

Другие языки (например, Java, Python, …) используют другой способ уведомления API библиотеки (эффективно включающий всю необходимую информацию в фактическую библиотеку), и поэтому обычно не требуется никаких отдельных пакетов *-devel (за исключением, возможно, для документация и дополнительные инструменты).

Они обычно содержат необходимые заголовки и библиотеки. Например, python-devel предоставит вам заголовки и библиотеки Python, если вы хотите встроить интерпретатор Python в свое приложение. Также включены некоторые дополнительные инструменты и документация (например, руководство для разработчиков или примеры кода).

  • Преобразование int в строку в C
  • О примерном определении
  • Неявные декларации функций в C
  • Использование нулевого оператора в C
  • Почему запись в строковый литерал в этой программе C segfault?
  • Как преобразовать целое число в шестнадцатеричную строку в C?
  • Программа не останавливается на строке scanf («% c», & ch), почему?
  • Операции с плавающей запятой в C-ассоциативном?
  • Странное предупреждение компилятора C: предупреждение: «struct» объявлен в списке параметров
  • Возвращаемое значение функции printf () в C
  • Почему FILE * не сохраняет адрес открытого файла
  • Давайте будем гением компьютера.