Qt_QFtp

QT - QFtp模块环境部署

由于 QT 官方自 Qt5.0 开始移除了 QFtp 模块,作为一个单独的模块,因此使用时需要下载该模块源码自行编译部署环境。

1. Qt5.12 + LiNUX GCC

1.1 下载源码

地址:https://github.com/qt/qtftp.git
源码目录结构大致如下:

1
2
3
4
5
6
7
└─ qtftp
├─ examples
│ └─ qftp
├─ modules
├─ src
│ └─qftp
└─ tests

1.2 编译源码

  1. 修改 src/qftp/qftp.pro 文件如下:
1
2
3
4
5
6
7
8
...
TARGET = QtFtp
# CONFIG += static
CONFIG += staticlib #生成静态库
# CONFIG -= shared
CONFIG += shared
QT = core network #生成动态库
...
  1. 修改 src/qftp/Headers/qftp.h 文件如下:
1
2
3
4
...
//#include <QtFtp/qurlinfo.h>
#include <qurlinfo.h>
...
  1. 右键 src,点击“构建src”,成功后构建目录文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
├── bin
├── include
│ └── QtFtp
│ ├── headers.pri
│ ├── QFtp
│ ├── qftp.h
│ ├── QtFtp
│ ├── QtFtpDepends
│ ├── QtFtpVersion
│ ├── qtftpversion.h
│ ├── QUrlInfo
│ └── qurlinfo.h
├── lib
│ ├── cmake
│ │ └── Qt5Ftp
│ ├── libQt5Ftp.a
│ ├── libQt5Ftp.la
│ ├── libQt5Ftp.prl
│ ├── libQt5Ftp.so -> libQt5Ftp.so.5.0.0
│ ├── libQt5Ftp.so.5 -> libQt5Ftp.so.5.0.0
│ ├── libQt5Ftp.so.5.0 -> libQt5Ftp.so.5.0.0
│ ├── libQt5Ftp.so.5.0.0
│ ├── libQt5Ftp.so.5.0.0.debug
│ └── pkgconfig
│ └── Qt5Ftp.pc
├── mkspecs
│ ├── modules
│ │ └── qt_lib_ftp.pri
│ └── modules-inst
│ ├── qt_lib_ftp.pri
│ └── qt_lib_ftp_private.pri
└── src

1.3 拷贝文件

  1. 构建目录/lib 下的 libQt5Ftp.a,l ibQt5Ftp.la, libQt5Ftp.prl, libQt5Ftp.so, libQt5Ftp.so.5, libQt5Ftp.so.5.0, libQt5Ftp.so.5.0.0 拷贝至 qt安装目录/gcc_64/lib 目录下;
1
2
3
4
5
6
7
cp lib/libQt5Ftp.a ~/Qt5.12.9/5.12.9/gcc_64/lib
cp lib/libQt5Ftp.la ~/Qt5.12.9/5.12.9/gcc_64/lib
cp lib/libQt5Ftp.prl ~/Qt5.12.9/5.12.9/gcc_64/lib
cp lib/libQt5Ftp.so ~/Qt5.12.9/5.12.9/gcc_64/lib
cp lib/libQt5Ftp.so.5 ~/Qt5.12.9/5.12.9/gcc_64/lib
cp lib/libQt5Ftp.so.5.0 ~/Qt5.12.9/5.12.9/gcc_64/lib
cp lib/libQt5Ftp.so.5.0.0 ~/Qt5.12.9/5.12.9/gcc_64/lib
  1. 构建目录/mkspecs/modules-inst 下的 两个文件拷贝至 qt安装目录/gcc_64/mkspecs/modules/ 目录下;
1
2
cp mkspecs/modules-inst/qt_lib_ftp.pri ~/Qt5.12.9/5.12.9/gcc_64/mkspecs/modules/
cp mkspecs/modules-inst/qt_lib_ftp_private.pri ~/Qt5.12.9/5.12.9/gcc_64/mkspecs/modules/
  1. 构建目录/include 下的 QtFtp 文件夹拷贝至 qt安装目录/gcc_64/include 目录下
1
cp -r include/QtFtp/ ~/Qt5.12.9/5.12.9/gcc_64/include/
  1. 源码/src 目录下的 qftp.h和qurlinfo.h 两个文件覆盖拷贝至 qt安装目录/gcc_64/include/QtFtp 目录下
1
2
cp -f src/qftp/q ~/Qt5.12.9/5.12.9/gcc_64/include/QtFtp/
cp -f src/qftp/qurlinfo.h ~/Qt5.12.9/5.12.9/gcc_64/include/QtFtp/

1.4 项目使用

  1. 在qt项目的 .pro文件添加模块:
1
QT += ftp
  1. 代码里添加对应的头文件:
1
#include <QFtp>

2. QT5.15 + MSVC2019

该编译部署流程与上述基本一致,细节稍有不同。

2.1 下载源码和环境准备

  1. 下载源码:https://github.com/qt/qtftp.git
  2. perl环境安装:https://www.perl.org/

2.2 编译源码

  1. 修改 src/qftp/qftp.pro 文件如下:
1
2
3
4
5
6
7
...
TARGET = QtFtp
CONFIG += static
# CONFIG -= shared
CONFIG += shared
QT = core network #生成动态库
...
  1. 修改 src/qftp/Headers/qftp.h 文件如下:
1
2
3
4
...
//#include <QtFtp/qurlinfo.h>
#include <qurlinfo.h>
...
  1. 右键 src,点击“构建src”,对于 examples 和 tests 工程报错可忽略;

2.3 拷贝文件

  1. 构建目录\lib 下的 Qt5Ftp.dll、Qt5Ftp.lib、Qt5Ftp.prl、Qt5Ftpd.dll、Qt5Ftpd.lib、Qt5Ftpd.prl 拷贝至 qt安装目录\5.15.2\msvc2019_64\lib 目录下;

  2. 构建目录\mkspecs\modules-inst 下的 qt_lib_ftp.pri 和 qt_lib_ftp_private.pri 两个文件拷贝至 qt安装目录\5.15.2\msvc2019_64\mkspecs\modules 目录下;

  3. 构建目录\include 下的 QtFtp 文件夹拷贝至 qt安装目录\5.15.2\msvc2019_64\include 目录下

  4. 源码\src 目录下的 qftp.h和qurlinfo.h 两个文件覆盖拷贝至 qt安装目录\5.15.2\msvc2019_64\include\QtFtp 目录下

2.4 项目使用

同上