用习惯了windows,在linux下写代码,涉及到动态库,总是要复制到/usr/lib里,觉得不方便,特别是调试的时候,不想复制过,特地找了一下怎么设置动态库查找路径,这里记录一下
程序是通过环境变量LD_LIBRARY_PATH的路径来查找库,那么我们就修改这个值,添加我们程序所在目录
命令:
export LD_LIBRARY_PATH=自己程序库路径:$LD_LIBRARY_PATH
可以直接在terminal中执行,但是只在当前terminal有效
可以在/.bash_profilez或者/.bashrc或者~/.profile或者/etc/profile
第二种方法,可以在编译的时候添加编译选项
-Wl,-rpath,运行库路径
#例如 -Wl,-rpath,./
# -Wl,-rpath,/home/root
# -Wl,-rpath,./:/home/root
#也可以写成
-Wl,-rpath=运行库路径
#例如 -Wl,-rpath=./
# -Wl,-rpath=/home/root
# -Wl,-rpath=./:/home/root
这里补充一点,如果是在QT .pro文件里添加,需要添加到LIBS,比如LIBS += -Wl,-rpath=/home/root,如果使用qt的远程调试,这个路径需要绝对路径,不能使用./当前路径,因为调试时的当前路径估计不是软件当前目录
应该还有其他方式设置,以后再记录
参考:
https://www.cnblogs.com/jiftle/p/7026905.html
https://www.cnblogs.com/sky-heaven/p/6641832.html
网友评论