какова фактическая команда сборки для пакета a -dev?

#ubuntu #makefile #cmake #build

#ubuntu #makefile #cmake #сборка

Вопрос:

Я работаю с https://github.com/shadowsocks/shadowsocks-libev

Найдено, что в ubnutu apt-get есть библиотека *-dev

 libshadowsocks-libev-dev - lightweight and secure socks5 proxy (development files)
  

Но с make по умолчанию он не сгенерировал so, как я ожидал, просто исключил двоичные файлы

Кроме того, я попытался выполнить поиск grep в исходном коде, но все еще не могу понять это

Итак, может ли кто-нибудь рассказать мне, как собрать libshadowsocks-libev-dev, более конкретно libshadowsocks-libev.so

Помимо этого, для всех этих пакетов *-dev существуют ли какие-либо формальные шаги сборки?

Комментарии:

1. «Но с помощью make по умолчанию он не сгенерировал so, как я ожидал, просто исключил двоичные файлы» — проект фактически создает библиотеку shared ( .so ) . Это выполняется этой строкой в [src/CMakeLists.txt ]: add_library(shadowsocks-libev-shared SHARED ${LIBSHADOWSOCKS_LIBEV_SOURCE}) .

2. @Tsyvarev Спасибо! Я мало знал о CMake, поэтому пропустил это. Наконец, я обнаружил, что он управляется флагом. После изменения вручную это работает

Ответ №1:

Не похоже, что есть какие-то очень конкретные рекомендации для -dev пакетов в целом. Человек, создавший пакет, создал a debian/rules и его вспомогательную инфраструктуру, которая создает два или более пакетов из исходного исходного пакета, и решил поместить некоторые из этих файлов в -dev пакет, чтобы люди, которым нужен только двоичный файл, могли установить только двоичный файл, а люди, которые хотят больше, могут установить оба пакета.

Как правило, -dev непакет устанавливает файл библиотеки, а -dev пакет содержит заголовочные файлы C и / или аналогичные ресурсы для тех, кто хочет скомпилировать код, использующий эту библиотеку.

Проект Github для этого пакета содержит определения в https://github.com/shadowsocks/shadowsocks-libev/tree/master/debian — в частности, libshadowsocks-libev-dev.install устанавливает .so (возможно, символическую ссылку), в то время libshadowsocks-libev2.install как (не -dev пакет) устанавливает usr/lib/*/libshadowsocks-libev.so.* (т. Е. Фактический двоичный файл).

The README.md содержит довольно подробные инструкции по сборке из исходного кода на платформах, основанных на Debian.

Комментарии:

1. Спасибо за подробное объяснение. Что касается файлов Debian в вашем списке, я все еще не понимаю, откуда берутся файлы, может быть, как cp xx usr/include/ , имеет ли файл xx определенный путь?

2. Это похоже на английский, но некоторые слова, вероятно, отсутствуют, поэтому я действительно не уверен, что вы пытаетесь спросить. Когда вы создаете пакет, debian/rules создает файлы в текущем каталоге, что usr/include на самом деле означает include каталог в usr каталоге в текущем каталоге. Но обычно эти файлы затем попадают в /usr/include при dpkg установке пакета.

3. Прошу прощения за мой плохой английский ~ У меня есть ответ, в основном из-за того, что я не знаком с пакетами CMake и deb, кстати, еще раз большое вам спасибо 🙂