使用 third-party 个库部署 Linux 个 C++ 可分发应用程序

Deploying Linux c++ distributable app with third-party libraries

我正在开发一个 cross-platform c++ 应用程序,目前我正在处理如何让它在 linux 这个我几乎没有经验的领域下工作。此应用程序使用 third-party 库(如 Poco 和 Boost)来命名 few.I 正在开发 Ubuntu 桌面版本,我在其中动态构建了它们,它们的 headers 包含在 usr/local/include 而 usr/local/lib.
中的 .so 文件 如果我想分发这个应用程序,只打包我的源代码(可执行文件)+ headers 等 third-party 库的文件就足够了,或者应用程序的接收者应该安装这些库在他的机器上以及应用程序执行?

检查您的第 3 方代码许可证。如果它是 GPL,请在您的下载中包含源代码 tarball。这是最简单的,因为它不会让您对以后的任何事情负责。否则,如果 Debian / Ubuntu 六年后将其从他们的存档镜像中删除,您仍然有责任为任何需要它的人提供源代码。

然后考虑将您的代码制作成 stand-alone Linux 应用程序。为此,您可以将所有需要的共享库放入您的目录中。您可以选择定义边界的位置。您可能决定可以依赖系统的 C 库、OpenGL、SDL 等,而无需捆绑它们。

然后创建一个shell脚本,使用[=10=](即sh变量,即脚本的全名)找出它在哪里运行宁从。将 LD_LIBRARY_PATH 设置为 dirname "[=13=]" 然后 exec realprogram $@

如果您这样做,您的代码可以 运行 在未来很长一段时间内在系统上运行。看看 Quake 3 是如何为 Linux 打包的,很像这样。