我使用以下命令在 UBUNTU1804 上安装包。
sudo aptitude -R -y --allow-untrusted install libqt5ftp5-dev
Error: Couldn't find any package whose name or description matched "libqt5ftp5-dev"
那么,我该如何安装诸如这样的软件包libqt5ftp5-dev
?xar
答案1
以下是文章这可能会有所帮助。为 Windows 编写,但也许你可以以某种方式使用它:
Qt 编译 QFtp
Qt已经到了5.x版本,QFtp
类不再是默认安装的对象,在新版本的Qt中,QNetworkAccessManager
使用类来代替,QFtp
但只保留了get、push等基本方法,QFtp
需要采用其他命令。编译过程中遇到几个坑,记录一下。(Mingw+QtCreator)
首先使用命令在qt官方代码仓库中克隆qftp(https://code.qt.io/cgit/qt/qtftp.git/下载完成后打开pro文件,找到./src/qftp/qftp.pro文件。将
CONFIG + = static
CONFIG-= shared
change to
CONFIG + = static
CONFIG + = shared
这样之后就可以生成静态库(*.a)和动态链接库(*.dll)文件了。但是此时我编译项目时报错:
perl is not an internal or external command, nor a runnable program
or batch file
后面就一大堆事情了。这个错误是在编译pl文件的时候出现的,而我正好缺了perl。于是去官网下载(需要注册账号,请注意安装过程中一定要勾选“在path中创建环境变量”选项),安装完后重启电脑,再编译。
如果提示找不到名为“QFtp/qurlinfo.h”的头文件,则需要引用./src/qftp/Headers/qftp.h
# include <QFtp / qurlinfo.h>
改成
# include <qurlinfo.h>
这样编译之后就会libQt5Ftp.a, libQt5Ftpd.a, Qt5Ftp.dll, Qt5Ftp.prl, Qt5Ftpd.dll, Qt5Ftpd.prl in ./build-qtftp-Qt5_12.../lib. Then enter/ lib folder, paste libQt5Ftp.a, libQt5Ftpd.a, Qt5Ftp.prl, Qt5Ftpd.prl into it, and then go toPaste Qt5Ftpd.dll, Qt5Ftp.dll
有/bin
,然后去 粘贴修改后的qftp.h
并建立一个名为 的文件(无后缀),用记事本打开文件并写入一行qurlinfo.h
/include/QtNetwork
QFtp
# include "qftp.h"
保存文档。
我们回到需要使用QFtp项目的配置文件中添加
LIBS + =
-lQt5Ftpd \
-lQtNetwork \
然后你可以#include <QtNetwork/QFtp>
在项目的头文件中
注意,因为该Qt5Ftp
库需要QtNetwork
对象,所以 ftp 应该在上面。否则,undefined reference to QFtp :: QFtp (QObject *)
编译时会出现类似 error: 的错误。