Список библиотек мультимедийных систем Ubuntu 18.04

Я собираю SDL2 в статическую библиотеку. Я хочу динамически ссылаться на системные библиотеки, которые присутствуют в Ubuntu 18.04. Насколько я понимаю, следующие библиотеки являются системными библиотеками, то есть они присутствуют на всех компьютерах с Ubuntu 18.04:

  • Pthreads
  • X11, Xext
  • ALSA (Pulseaudio на вершине этого)
  • OpenGL

Теперь я знаю, что файлы заголовков для этих библиотек должны быть установлены для успешной компиляции, например apt install libXXX-dev однако библиотеки (файлы.so) уже должны присутствовать. Я могу успешно связаться с: -lX11 -lXext -lpthread -dl -GL, Тем не менее, я не могу найти соответствующие флаги компоновщика для ALSA (пробовал -lasound варианты безрезультатны) Любые ответы, которые я нашел в Интернете, говорят, чтобы установить asound2, но если я сделаю это, то распределенный двоичный файл потребует от пользователя также установить эти библиотеки! Это не должно быть необходимым!

Поэтому я был бы очень признателен, если бы кто-нибудь показал мне флаги компоновщика для системной библиотеки ALSA. Спасибо!

1 ответ

Кажется, у меня возникла проблема с системной библиотекой ALSA. Я не знал о символьных ссылках версий, используемых в некоторых библиотеках Linux. Смотри stackoverflow q & a. Итак, хотя пакет libasound2-dev кажется, что в дополнение к заголовкам устанавливается несистемная библиотека, на самом деле это символическая ссылка на самую последнюю системную библиотеку linux ASLA. Таким образом, бинарный файл будет работать на Ubuntu 18.04 без зависимостей. Ради полноты:

# libc headers and object files. annoying that gcc is a dependency here.
apt install gcc libc6-dev
# x11 headers
apt install libx11-dev libxext-dev
# opengl headers
apt install libgl1-mesa-dev
# alsa headers and symlink library
apt install libasound2-dev
Другие вопросы по тегам