不要这样做。
最可靠的方法是制作一个完整的静态构建库堆栈。
但这会使您的应用程序完全膨胀,如果这些库中存在任何安全问题,您将需要自己更新它,并且您的所有用户都需要重新下载。
通过使用发行版提供的 SDL 库,您的应用程序将受益于Linux 社区完成的SDL 错误修复和更新。
考虑为最常见的发行版(即 Debian、Ubuntu、Redhat、Fedora)提供软件包,这些发行版对发行版提供的 SDL 库具有适当的依赖关系。
当您查看 Skype、Google 等如何分发他们的二进制文件时,它总是在一个特定于分发的包中,然后可以与系统库一起使用。例如 Skype:
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.3.6-6~), libc6 (>= 2.7),
libgcc1 (>= 1:4.1.1), libqt4-dbus (>= 4:4.5.3), libqt4-network (>= 4:4.8.0),
libqt4-xml (>= 4:4.5.3), libqtcore4 (>= 4:4.7.0~beta1), libqtgui4 (>= 4:4.8.0),
libqtwebkit4 (>= 2.1.0~2011week13), libstdc++6 (>= 4.6), libx11-6, libxext6,
libxss1, libxv1, libssl1.0.0
如您所见,Skype并未包含所有库。安装 Skype 时,用户可能不得不依靠他的包管理器来解决这些依赖关系。
此外,Linux 用户根本不愿意下载或安装二进制文件。如果您真的希望人们使用您的“应用程序”,您最好将其开源并让某人将其包含在主要的 Linux 发行版中。Linux 不是 Windows。Linux 上很少有病毒的原因之一是大多数人不会下载不受信任的软件。