最近更新于 2024-04-08 17:27

在开发中,经常会使用到第三方库,有些是静态库,在编译成可执行文件的时候就复制了一份,而另外一些则是动态库,只在执行的时候才从系统中寻找并加载。

默认寻找动态库的路径如 /lib、/lib32、/lib64、/usr/lib、/usr/lib32、/usr/lib64 以及 LD_LIBRARY_PATH 环境变量中指定的路径和程序文件自己所在的目录下,如果将编译好的可执行程序复制到另外一台没有配置开发环境的计算机上,那么就可能因为没有对应需要的动态库而无法运行。解决方法就是将程序依赖的动态库文件一起复制并放置到程序文件所在目录下,再整个一起发布给别的计算机使用。

使用 ldd 命令可以查询程序文件依赖的动态库文件路径

然后结合一系列指令完成复制,一般就拷贝到可执行文件所在的路径下

ldd [二进制文件] | awk '{print $3}' | xargs -i cp -L {} [目标路径]

作者 IYATT-yx