windows 下一个程序的dll搜索路径首先是程序目录,然后是一些系统目录。linux 下的可以通过设置 LD_LIBRARY_PATH 等方法来添加搜索路径,但是这些路径是定死的,如果要实现程序目录,就要使用链接时的rpath选项。rpath 适用于 elf 文件,不适用 pe。
方法:
在项目的.pro文件中添加以下代码(注意位置尽量靠前)
QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'"
添加完以上参数后,程序会优先从这个路径中查找动态库
说明:
QMAKE_LFLAGS为指定传递给链接器的一组常规标志。
-Wl
为gcc的参数,表示「编译器将后面的参数传递给链接器ld」。
-rpath
为在运行链接时,会优先搜索-rpath的路径。
$ORIGIN代表可执行程序所在路径
参考:
https://blog.csdn.net/ibingow/article/details/7882098
https://blog.csdn.net/u013992330/article/details/115954232