linux - 程序和安装库的依赖关系

标签 linux installation libraries

在我的 Linux Mint 中,我有一个程序,一个可执行文件。 在终端中使用 ldd 我可以依赖这个可执行文件。 文件 当在另一个系统中移动程序时,它不运行。

ldd 文件给出类似...

linux-vdso.so.1 =>  (0x00007ffc2a36d000)
libwx_gtk2u_stc-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_stc-3.0.so.0 (0x00007f2919d55000)
libwx_gtk2u_adv-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_adv-3.0.so.0 (0x00007f291996f000)
libwx_gtk2u_core-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0 (0x00007f29190f5000)
libwx_baseu-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 (0x00007f2918c63000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f291898e000)

......................

我如何知道所有这些库并只安装它需要运行到其他系统。

使用 objdump -p/path/to/program | grep NEEDED 我只能得到我需要的库吗?

谢谢!

最佳答案

ldd 的输出表明您已经在系统上安装了所有库依赖项。

它不能在另一个系统上运行的原因很可能是由于这些库的链接表不同,因此您的程序根本无法通过该地址找到它正在寻找的符号。

作为一个简单的解决方案,我建议在新机器上重新编译程序。

关于linux - 程序和安装库的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41058599/

相关文章:

linux - kubernetes 和 cron 之间的关系

ruby-on-rails - 如何卸载 Ruby on Rails 并进行全新安装?

带有补丁管理/自动更新的 .NET 部署选项

windows - 如何为 Windows 构建静态 Qt 库并将它们与 Qt Creator 一起使用

java - 如何使用java将PDF文件转换成PPT文件?

c++ - 如何在实践中解决项目编译中链接库的顺序

C++ ELF 目标文件符号表有两次列出的函数

linux - 比较目录结构

c++ - 在使用 g++ 和 c++ 进行调试时如何快速查看复杂的结构

android - 安装 apk 失败 : Finsky POTENTIALLY_UNWANTED