Qt动态库的链接问题

前言

之前在Qt 引用动态库经常出错,要么编译找不到库,要么运行时候出错,其实就是路径的问题, 这里总结一下

正文

Qt中引用动态库,动态库有两个文件,一个是.lib链接文件,一个是.dll动态库文件,
在Qt pro文件引用的时候
LIBS += -L../lib -lReceiver
这个表示lib文件在工程文件的上一层目录中的lib文件夹中,只需要将.lib文件的路径引导正确即可。
如果.lib文件就在pro文件的当前目录下,那么可以省掉-L 项
直接写成 LIBS += -lReceiver

建议在写路径的适合加PWD指示当前目录,例如
LIBS += -L$$PWD/lib -llibReceiver

然后 打包的时候 只需要将dll库文件拷贝到与exe执行文件统计目录下即可自动查找并运行,打包文件中不再需要.lib文件

工程文件中写的库链接 是编译的时候去这个路径找lib链接库, 但是打包出来的文件运行不会根据这个路径去查找dll文件

记住一点:
编译是去查找 lib文件 所以路径只要写lib的路径就好,而运行就需要dll文件,所以在打包文件中运行程序的时候会在exe同级目录下去查找dll文件,如果没有,就会报错

你可能感兴趣的:(Qt)