对自己打包的so文件进行测试,编译不报错 但是运行时 出现错误:cannot open shared object file: No such file or directory
但是so文件明明已经放在当前目录下了
这是linux下so库经常会出现的错误,发现程序寻找每个so的路径基本为系统路径,lib或者usr/lib等。(多个so文件相互依赖最容易出现这种错,因为你会忽略别的so文件位置,一定要仔细看报错信息)
而当前目录并不在查找范围内,因此显示无法找到
解决方法
1.使用docker的话直接给命令加-e或者给dockerfile加配置
docker run -v /home/yongqi/docker:/home/yongqi/docker -e LD_LIBRARY_PATH=/home/yongqi/docker/so:$LD_LIBRARY_PATH -p 9226:9226 vectorcompute.jar
2.使用linux直接放入系统路径或者修改环境变量