文章目錄
1、簡介
好久沒碰Qt了襟沮,今天突然有一個好朋友來問了我一個QFTP的問題,正好這個問題以前沒搞過屋群,所以研究一下。因為QFTP是Qt4的庫坏挠,Qt5已經(jīng)不用了芍躏,改用了QNetworkAccessManager來代替。但是Qt5提供的QNetworkAccessManager僅支持FTP的上傳和下載癞揉,所以只能用QFTP了纸肉。今天搞完,有些小收獲喊熟,記錄一下柏肪。
2、下載并編譯Qt4的庫
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
2.1.2 修改“qtftp-master\src\qftp”下的“qftp.h”文件
//#include <QtFtp/qurlinfo.h>
#include <qurlinfo.h>
2.2 編譯
編譯好后壁拉,會在編譯好的文件夾的“l(fā)ib”目錄找到如下文件:
3谬俄、應用編譯好的庫
應用編譯好的庫有兩種方式,一種是直接引用頭文件弃理,并在應用到ftp項目的目錄加入lib和dll溃论,在pro用添加引用庫的參數(shù)。另一種則是放在Qt的目錄下痘昌,以后所有項目都可以直接用這個庫钥勋。本文講的是后者。
3.1 引用
3.1.1 拷貝靜態(tài)庫到 lib 下
接下來將 Qt5Ftpd.lib辆苔、Qt5Ftp.lib算灸、Qt5Ftpd.prl、Qt5Ftp.prl 拷貝至 Qt\Qt5.9\5.9\msvc2015\lib驻啤。
3.1.2 拷貝動態(tài)庫到 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”。
編譯好的文件我已經(jīng)上傳到CSDN:
https://download.csdn.net/download/u014597198/11154213
3.2 引用
完成之后沐旨,就到了引用環(huán)節(jié)了森逮,記得我們是在msvc2015下引用的庫,編譯器就得選擇msvc2015的哦磁携。然后我們在上述過程中的QtNetwork 下加的引用庫,就得引用network框架哈良风。在項目的.pro文件中加入以下內(nèi)容谊迄,就可以引用了:
QT += network
CONFIG(debug, debug|release) {
LIBS += -lQt5Ftpd
} else {
LIBS += -lQt5Ftp
}
就可以在QT5中使用QFTP了闷供,如果以上操作全部正確,這里就不會標紅统诺。沒標紅就證明你上述操作都對了哈