在 Linux 系统中,程序运行时可能依赖于多个共享库(Shared Libraries)。有时我们需要将这些依赖库拷贝到特定目录,以确保程序能够正确运行。以下是一个简单的教程,介绍如何查找并拷贝这些依赖库。
假设我们有一个可执行文件 MyProject,我们希望将它依赖的所有共享库拷贝到 dist/lib/ 目录下。可以使用以下命令:
| |
注意事项
- 不要对来源不可信的可执行文件直接运行
ldd;部分实现可能触发目标程序的动态加载逻辑。 - 上述命令只复制
ldd输出第三列为绝对路径的库,动态加载器等条目可能需要单独处理。 - 如果系统安装了
pax-utils,可以使用lddtree更清晰地查看递归依赖:
| |
打包完成后,建议通过 LD_LIBRARY_PATH 指向私有库目录进行验证:
| |