Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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