文章目錄
- 1、簡介
- 2、下載下傳并編譯Qt4的庫
- 2.1 編譯準備
- 2.1.1 修改“qtftp-master\src\qftp”下的“qftp.pro”檔案
- 2.1.2 修改“qtftp-master\src\qftp”下的“qftp.h”檔案
- 2.2 編譯
- 3、應用編譯好的庫
- 3.1 引用
- 3.1.1 拷貝靜态庫到 lib 下
- 3.1.2 拷貝動态庫到 bin 下
- 3.1.3 拷貝頭檔案到 QtNetwork 下
- 3.2 引用
1、簡介
好久沒碰Qt了,今天突然有一個好朋友來問了我一個QFTP的問題,正好這個問題以前沒搞過,是以研究一下。因為QFTP是Qt4的庫,Qt5已經不用了,改用了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 編譯
編譯好後,會在編譯好的檔案夾的“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”。
編譯好的檔案我已經上傳
3.2 引用
完成之後,就到了引用環節了,記得我們是在msvc2015下引用的庫,編譯器就得選擇msvc2015的哦。然後我們在上述過程中的QtNetwork 下加的引用庫,就得引用network架構哈。在項目的.pro檔案中加入以下内容,就可以引用了:
QT += network
CONFIG(debug, debug|release) {
LIBS += -lQt5Ftpd
} else {
LIBS += -lQt5Ftp
}