关于linux下编译so动态库及加载提示找不到文件路径的问题
ldd libbaiduface.so 查看库引用的文件真实路径,如查有not found,则说明找不到库。
可根据引用的库逐个执行该命令,看到哪个库引用到了这个not found的文件。
readelf -d libopencv_world.so 查看RUNPATH设置。一般都是一个全路径,表示是编译该文件时的搜索路径,需要改为当前库所在路径:
$ORIGIN 表示是当前库所在路径。
patchelf --set-rpath '$ORIGIN' libexample.so 设置运行时路径,即runpath.
基本上经过上面步骤,就可以解决路径找不到的问题。当然上面是将路径全部放在了当前目录下。