Я собираю SDL2 в статическую библиотеку. Я хочу динамически ссылаться на системные библиотеки, которые присутствуют в Ubuntu 18.04. Насколько я понимаю, следующие библиотеки являются системными библиотеками, то есть они присутствуют на всех машинах Ubuntu 18.04:
Теперь я знаю, что файлы заголовков для этих библиотек должны быть установлены для успешной компиляции, например apt install libXXX-dev
Однако библиотеки (.so файлы) уже должны присутствовать. Я могу успешно связаться с: -lX11 -lXext -lpthread -dl -GL
. Однако я не могу найти соответствующие флаги компоновщика для ALSA (пробовал -lasound
вариантов безрезультатно). Любые ответы, которые я нашел в Интернете, говорят об установке asound2
, но если я сделаю это, то распределенный двоичный файл потребует от пользователя установите эти библиотеки также! В этом не должно быть необходимости!
Так что я был бы очень признателен, если бы кто-нибудь показал мне флаги компоновщика для системной библиотеки ALSA. Спасибо!
Кажется, у меня возникла проблема с системной библиотекой ALSA. Я не знал о символьных ссылках версий, используемых в некоторых библиотеках Linux. См. stackoverflow q & amp; а . Таким образом, хотя пакет 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