linux二进制独立于共享库

时间:2011-01-27 19:09:56

标签: c++ linux binary portability ldd

我有一个C ++程序,它依赖于很多库(一些常见的系统库,比如libjpeg,一些未在系统范围内安装的个人库)。该程序在机器A(Debian Squeeze)上编译得很好。我想在机器B(Ubuntu maveric)和机器C(Arch)上运行程序。假设两台机器B + C都是极端小型安装。不要期望找到我的程序在那里使用的任何库,如果有任何它们不是相同的版本。

是否有任何程序可以扫描我的程序中的所有依赖项(使用ldd或其他东西)收集所有这些依赖项,并生成一个脚本,告诉二进制文件使用这些并且只在其他任何系统上附带这些库?

谢谢!

2 个答案:

答案 0 :(得分:2)

我不是100%确定我理解你的问题,但似乎你想用你的软件包发送库,并使用LD_LIBRARY_PATH强制链接器先查看你提供的库目录。

如果有更多内容,我可以修改我的答案,因为我对此有一些经验。只是想确保我知道你要求的是什么。

答案 1 :(得分:2)

事实证明,你的问题的答案是静态链接,比如g ++ -static。