Ubuntu 18.04 多媒体系统库列表

Ubuntu 18.04 多媒体系统库列表

我正在将 SDL2 编译成静态库。我希望动态链接到 Ubuntu 18.04 上存在的系统库。据我了解,以下库是系统库,即它们存在于所有 Ubuntu 18.04 机器上:

  • 线程
  • X11、Xext
  • ALSA(pulseaudio 位于此之上)
  • 开放图形

现在,我知道必须安装这些库的头文件才能成功编译,例如apt install libXXX-dev,库(.so 文件)应该已经存在。我可以成功链接:-lX11 -lXext -lpthread -dl -GL。但是,我找不到适合 ALSA 的链接器标志(尝试过-lasound各种变体但无济于事)我在网上找到的所有答案都说要安装asound2,但如果我这样做,那么分布式二进制文件将要求用户也安装这些库!这应该没有必要!

因此,如果有人能向我展示系统库 ALSA 的链接器标志,我将不胜感激。谢谢!

答案1

看来我遇到了 ALSA 系统库的问题。我不知道某些 Linux 库中使用的版本符号链接。请参阅stackoverflow 问答。因此,尽管该软件包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

相关内容