为各种Ubuntu版本编译C语言

前端之家收集整理的这篇文章主要介绍了为各种Ubuntu版本编译C语言前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在 Linux下构建一个程序,它可以在特定的Ubuntu版本中运行.但我们希望在Ubuntu 10.04和11.10上运行相同的二进制文件.
在10.04平台上构建应用程序是完全可以的.但是当我这样做时,我依赖于特定的库版本(例如libboost_thread.so.1.40.0),这些版本在11.10上是不可用的,因为它使用了更新的版本.该系统使用QMake构建.

我正在寻找一个教程或起点如何解决多个Ubuntu平台的这些依赖冲突.

如果没有其他人感觉像是在挥杆,我也可以注入一些东西.

我将做一些假设.

>您正在分发二进制/闭源应用程序
>您想自己分发它

因此排除了整体“只是让发行版/用户为自己的设置构建它”.

看看其他人如何解决类似问题,我可以看到将共享库包含在您的应用程序中然后使用加载器/包装器,您想要调用它的脚本,以及在启动应用程序之前修改环境的脚本.具体来说,他们修改LD_LIBRARY_PATH以包含应用程序附带的/ lib文件夹.

脚本可以很简单.

#!/bin/sh

LD_LIBRARY_PATH=./lib ./myAppReal

这就是我解决将Qt4应用程序分发给分发不比Qt-3.3.6更新的用户的问题(2009年……认真对待).编辑:也许用户也说我的意思是公司为开发付费的5个人,我们的规格失败并没有要求他们在现代操作系统上说跨平台时更具体.

现在有人可能会发现这个问题有十几个错误,但这很好,我可以随时更新和学习.

编辑:正如JimR所说,这带来了安全隐患,如果你让你的libs文件夹成为可写的,有人可能会用它来将恶意代码注入你的应用程序.根据您计划部署的方式,它可能或不是真正的问题,但您应该了解它.

猜你在找的Ubuntu相关文章