QT5 如何实现以前的FTP API
https://jingyan.baidu.com/article/ca2d939d04b7c4eb6c31cef0.html
测试可行,从https://github.com/qt/qtftp下载,根据步骤编译即可。注意:dll生成到了根目录的lib目录下。
qt5之后就不在使用QFtp QHttp,因为QNetworkaccessmanager已经替代了大部分功能,但却不完全替换所有功能,有2种方法供用户选择 1现在编译ftp源码 2.使用第三方libcurl库!
最近因为项目需要,想用第一种方法,但是上网查了好久,都是几年前的,方法过时不说,还一大堆错误,误人子弟,更让我无语的是都是同一篇文章。好不容易从一位良心的作者借鉴了下他的经验才搞定的。
先说下写这经验的时间是2016-6-28
工具/原料
-
win7 QT5.5.1
方法/步骤
-
首先,从QFTP网址上下载源码,这里发布不了连接
之后如下图,选择第二个下载。不要选最新的第一个,一开始就是以为最新的就是最好的,结果编译的时候一大堆错误,改到烦死了。第二个的错误相对来说少一点。
点击snapshot下载。
-
如下图,将源码解压到没有中文的路径中,用qtcreate打开根目录下的pro,项目里面有三个可以直接看到的项目examples、src、tests。我们只编译第二个src。
-
然后只修改src\qftp\qftp.pro中的CONFIG += staticCONFIG -= shared改为CONFIG -= staticCONFIG += shared//共享动态库
-
结果在\build-qtftp-Desktop_Qt_5_5_1_MinGW_32bit-Debug\lib中就有文件了
-
目录下生成的*.dll动态库文件(Qt5Ftp.dll、Qt5Ftpd.dll)复制到D:\Qt\Qt5.5.1\5.5\mingw492_32\bin目录下。目录下生成的*.a和*.pri静态库文件复制到 D:\Qt\Qt5.5.1\5.5\mingw492_32\lib
上面的D:\Qt\Qt5.5.1\5.5\mingw492_32,是我QT creator的安装路径,你们要根据实际情况来复制。
-
之后,还要复制源码中,qtqtftp-6142a49\src\qftp\下的qftp.h和qurlinfo.h复制到 D:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtNetwork目录下。在 D:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtNetwork目录中新建一个没有后缀名的QFtp文件然后用记事本写入#include ”qftp.h”
-
7
以上就是QFTP的编译过程。最后就是项目实现时,使用编译好的库
需要连接哪个库就在pro文件中连接哪个库
例如:
LIBS+="D:/Qt/Qt5.5.1/5.5/mingw492_32/bin/Qt5Ftp.dll"
然后你原来基于QFtp写的程序就可以成功编译了