qtftp编译动态库、静态库
参考文章: https://blog.csdn.net/u014597198/article/details/89715914
但是,按照楼主的方式无法生成lib库,只有dll库,解决方案在文章末尾
文章目录
1、简介
参考文章: https://blog.csdn.net/u014597198/article/details/89715914
但是,按照楼主的方式无法生成lib库,只有dll库
2、下载并编译Qt5的库
QFTP在Github的下载地址:https://github.com/qt/qtftp
先下载到本地,然后把它编译。注意编译前要改两个地方:
2.1 编译准备
2.1.1 修改“qtftp-master\src\qftp”下的“qftp.pro”文件
把“CONFIG += static CONFIG -= shared”改为“CONFIG += staticlib CONFIG += shared”,如下:
#CONFIG += static
#CONFIG -= shared
TEMPLATE = lib
- 1
- 2
- 3
2.1.2 修改“qtftp-master\src\qftp”下的“qftp.h”文件
//#include <QtFtp/qurlinfo.h>
#include <qurlinfo.h>
- 1
- 2
2.2 编译
编译好后,会在编译好的文件夹的“lib”目录找到如下文件:
3、应用编译好的库
应用编译好的库有两种方式,一种是直接引用头文件,并在应用到ftp项目的目录加入lib和dll,在pro用添加引用库的参数。另一种则是放在Qt的目录下,以后所有项目都可以直接用这个库。本文讲的是后者。
3.1 引用
3.1.1 拷贝静态库到 lib 下
接下来将 Qt5Ftpd.lib、Qt5Ftp.lib、Qt5Ftpd.prl、Qt5Ftp.prl 拷贝至 Qt\Qt5.9\5.9\msvc2015\lib。
3.1.2 拷贝动态库到 bin 下
将 Qt5Ftpd.dll、Qt5Ftp.dll 拷贝至 Qt\Qt5.9\5.9\msvc2015\bin
3.1.3 拷贝头文件到 QtNetwork 下
将src\qftp目录下的 qftp.h、qurlinfo.h 拷贝至 Qt\Qt5.9.0\5.9\msvc2015\include\QtNetwork,并新建一个名为 QFtp 的文件(注意:没有后缀名),然后用文本编辑器写入 #include “qftp.h”。
编译好的文件我已经上传到CSDN:
https://download.csdn.net/download/u014597198/11154213
3.2 引用
完成之后,就到了引用环节了,记得我们是在msvc2015下引用的库,编译器就得选择msvc2015的哦。然后我们在上述过程中的QtNetwork 下加的引用库,就得引用network框架哈。在项目的.pro文件中加入以下内容,就可以引用了:
QT += network
CONFIG(debug, debug|release) {
LIBS += -lQt5Ftpd
} else {
LIBS += -lQt5Ftp
}
就可以在QT5中使用QFTP了,如果以上操作全部正确,这里就不会标红。没标红就证明你上述操作都对了哈
3.3 解决无法生成lib库的问题
1. 首先修改头文件
2. 修改项目文件pro,只让他生成静态库lib,并且把项目改成release生成方式
3. lib生成路径,是你qtfpt工程所在根目录,会生成lib文件夹