Список библиотек мультимедийных систем 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