记录一下这个问题,毕竟整了好几天
发现这个问题,还是经过一个报错问题卡了好多天,后个人的疑问:为什么明明指明了路径,生成 .SO 没有问题,在调用.SO 就有问题,报错各种找不到函数或者未定义,然后把缺的 *.so 都一顿拷贝至 /lib 或者 /usr/lib 中 有时又可以解决问题,但不是每次都好用 ??
linux动态链接库的加载顺序:
它有5个地方会查找,
- 编译时指定的run path
- LD_LIBRARY_PATH 指定的地方
- ldconfig 指定的地方
- /lib
- /usr/lib其它说明:
(1):通过readelf -d test 可以看到(RPATH) Library rpath
(2): 需要用LD_LIBRARY_PATH 说明。此例为: export LD_LIBRARY_PATH=./
(3): 需要在/etc/ld.so.conf 中指明,此例为:/home/hjj/MyTest/temp/
然后ldconfig 生成缓存使设置生效。
(4):系统目录/lib
(5):系统目录/usr/lib