Qt程序运行时调用相对路径动态库
编译时指定动态库路径
通过在pro文件中添加:
LIBS += -L$$PWD/3rdparty/lib/ -lhlog4qt
此为编译时调用,编译正常通过。但是程序运行时默认通过环境变量LD_LIBRARY_PATH指定动态库搜索路径,于是在程序运行时就出现了如下错误
Cannot load library /int/bin/Protocolplugin/libFtpGetComtrade.so: (libhlog4qt.so.1: cannot open shared object file: No such file or directory)
运行时固定路径的动态库调用
- 在 /etc/ld.so.conf 文件中添加库的搜索路径
- 在环境变量 LD_LIBRARY_PATH 中指明库的搜索路径
以上两种方法可以自行搜索解决
运行时相对路径的动态库调用
使用-rpath执行路径为库搜索路径
通过在pro文件中添加:
unix:!mac:QMAKE_LFLAGS += -Wl,--rpath=./lib
-Wl,-rpath=. 指定当前路径为库搜索路径