使用第三方库部署Linux c ++ distributable app

时间:2017-02-17 22:44:15

标签: c++ linux libraries

我正在开发一个跨平台的c ++应用程序,暂时我正在处理它在linux下工作的一个我很少有经验的领域。这个应用程序使用像Poco和Boost这样的第三方库。我正在开发一个Ubuntu桌面版本,我已经动态构建它们,它们的头文件包含在usr / local / include中,而usr /中的.so文件local / lib目录。
如果我想分发这个应用程序,只需打包我的源代码(可执行文件)+第三方库的标题和文件等,或应该是应用程序的接收者在他的机器上安装这些库要执行的应用程序?

1 个答案:

答案 0 :(得分:1)

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

然后考虑将您的代码变成一个独立的Linux应用程序。您可以通过将所需的所有共享库放入目录来完成此操作。您可以选择定义边界的位置。您可能决定可以依赖系统的C库,OpenGL,SDL等,而不需要捆绑它们。

然后创建一个使用$0的shell脚本(该脚本的全名sh变量)来查找它的运行位置。将LD_LIBRARY_PATH设置为dirname "$0",然后设置为exec realprogram $@

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

相关问题