让一个已经编译好的 ELF 可执行程序在当前目录下查找运行时需要的动态库 .so 文件

使用 LD_LIBRARY_PATH 环境变量来指定动态库搜索路径。具体步骤如下:
将可执行程序和动态库文件复制到同一个目录中,例如 /path/to/myapp。

打开终端,进入到 /path/to/myapp 目录中。

设置 LD_LIBRARY_PATH 环境变量,将当前目录添加到动态库搜索路径中,例如:

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

这里的 . 表示当前目录,$LD_LIBRARY_PATH 表示原来的动态库搜索路径。使用 export 命令可以将 LD_LIBRARY_PATH 环境变量导出到当前 shell 的环境中,使得后续执行的命令都可以使用该环境变量。

运行可执行程序,例如:

./myapp

在运行时,动态库链接器会先在当前目录中查找动态库文件,如果找不到才会继续在其他路径中查找。

请注意,使用 LD_LIBRARY_PATH 环境变量来指定动态库搜索路径可能存在安全风险,因为它可以让用户在运行时加载任意位置的动态库文件。因此,建议仅在开发和测试阶段使用该方法,而不要在生产环境中使用。

猜你喜欢

转载自blog.csdn.net/weixin_43074760/article/details/131470652
今日推荐