Мне было интересно, всегда ли загрузка разработчиков так же полна, как их обычные аналоги?
2 ответа
Пакеты, заканчивающиеся на -dev
содержат заголовки и статические библиотеки, используемые при создании приложения, которое выполняет вызовы этой библиотеки. Это может быть достаточно для вас, если вы создаете приложение из исходного кода и хотите скомпилировать библиотеку статически.
Однако все приложения, которые вы устанавливаете из пакетов, будут использовать общие библиотеки, которые не предоставляются пакетами -dev
, поэтому вам также необходимо установить базовый пакет.
Почти все библиотечные пакеты, заканчивающиеся на -dev
, зависят от базового пакета, поэтому, если вы выберете libpng-dev
и установите его, менеджер пакетов должен автоматически загрузить libpng
. Если вы загрузите libpng-dev
самостоятельно и попытаетесь установить его, установка, вероятно, завершится неудачно, так как для нее также требуется указать libpng
. Обычно есть параметры командной строки для принудительной установки без проверки зависимостей, но они используются редко и не рекомендуются.
Итак, вы должны действительно загрузить базовый пакет, а также -dev
, но обычно об этом позаботится менеджер пакетов.
Я предполагаю, что вы имеете в виду имена пакетов, как в Debian и Ubuntu.
Суффикс -dev
для пакетов означает, что он содержит файлы, относящиеся к разработке с использованием пакета без суффикса.
Например, пакет zlib1g-dev
содержит файлы, необходимые для создания приложений с использованием zlib1g
. zlib1g
просто содержит библиотеку, чтобы существующие приложения могли использовать эту функциональность. Для компиляции требуются файлы -dev, потому что компилятор должен знать, откуда берутся функции, но после компиляции программы требуется только обычный пакет, потому что скомпилированное приложение знает, как загрузить библиотеку и использовать функции внутри.
Если вы не компилируете приложения, использующие библиотеку, вручную, вы, как правило, не используете пакеты -dev
- вместо этого вам потребуются пакеты не -dev
. Тем не менее, если вы компиляции приложений, вы хотите их обоих - пакет -dev
не содержит саму библиотеку (но , как правило , зависит от библиотеки, так что вы получите это тот путь).