QT5.2 无法使用QFtp解决办法

由于QT5对QML的支持有很大的改进,所以打算将原来基于QT4的程序移植到QT5上,在移植用QFtp类写的程序时傻眼了!
Qt5 移除了 QFtp API,原因是其实现质量。QNetworkAccessManager 可以用来提供 ftp url 的上传下载操作。
由于原来的程序已经跑的很稳定了不想做修改,然后就去想其它办法,结果发现官方说这些 API 将由某一易于迁移的独立形式提供。

去git看了看,结果发现这个源码一直在更新,已经更新到支持Qt5了,所以我就下载了一份源码,然后编译了一个支持QT5的QFtp。

1到http://pan.baidu.com/s/1pLhpd5T,.将qtftp-master.zip下载之后,打开

2. 编译
用QTCreator打开项目qtftp.pro

然后编译编译最后会有几个类似警告的东西,直接点击忽略

3.完成后会在构建目录\lib\目录下面生成两个编译好的静态库(.a)

4.编译动态库

进入\master\qt-qtftp\src\qftp目录

修改qftp.pro文件

将原来的两句CONFIG修改为:
       CONFIG -= static
       CONFIG += shared

然后编译编译完成后同样会在构建目录\lib\目录下生给予成我们需要的动态库文件(.dll)

5.部署编译好的库

5.1将动态库(.dll文件)拷贝至C:\Qt\Qt5.1.0\5.1.0\mingw48_32\bin目录下
5.2将静态库(.a文件)拷贝至C:\Qt\Qt5.1.0\5.1.0\mingw48_32\lib目录下
5.3将master\qt-qtftp\src\qftp目录下的两个头文件qftp.h和qurlinfo.h
拷贝至C:\Qt\Qt5.1.0\5.1.0\mingw48_32\include\QtNetwork目录下
5.4在该目录下创建一个文件QFtp注意没有扩展名
5.5用记事本打开QFtp文件,并且在其中写上#include”qftp.h”

6.使用编译好的库
需要连接哪个库就在pro文件中连接哪个库
例如:
    LIBS+="C:/Qt/Qt5.1.0/5.1.0/mingw48_32/bin/Qt5Ftp.dll"
7.然后你原来基于QFtp写的程序就可以成功编译了

阅读更多

更多精彩内容