4

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

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

谢谢 !

4

2 回答 2

2

我不是 100% 确定我理解您的问题,但您似乎想将库与您的包一起发布,并使用 LD_LIBRARY_PATH 强制链接器先查看您发布的库目录。

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

于 2011-01-27T19:26:32.070 回答
2

事实证明,您的问题的答案是静态链接,例如使用 g++ -static。

于 2011-01-27T20:37:07.593 回答