我有一个C ++程序,它依赖于很多库(一些常见的系统库,比如libjpeg,一些未在系统范围内安装的个人库)。该程序在机器A(Debian Squeeze)上编译得很好。我想在机器B(Ubuntu maveric)和机器C(Arch)上运行程序。假设两台机器B + C都是极端小型安装。不要期望找到我的程序在那里使用的任何库,如果有任何它们不是相同的版本。
是否有任何程序可以扫描我的程序中的所有依赖项(使用ldd或其他东西)收集所有这些依赖项,并生成一个脚本,告诉二进制文件使用这些并且只在其他任何系统上附带这些库?
谢谢!
答案 0 :(得分:2)
我不是100%确定我理解你的问题,但似乎你想用你的软件包发送库,并使用LD_LIBRARY_PATH强制链接器先查看你提供的库目录。
如果有更多内容,我可以修改我的答案,因为我对此有一些经验。只是想确保我知道你要求的是什么。
答案 1 :(得分:2)
事实证明,你的问题的答案是静态链接,比如g ++ -static。