找不到名称或描述与“libqt5ftp5-dev”匹配的任何软件包

找不到名称或描述与“libqt5ftp5-dev”匹配的任何软件包

我使用以下命令在 UBUNTU1804 上安装包。

sudo aptitude -R -y --allow-untrusted install libqt5ftp5-dev

Error: Couldn't find any package whose name or description matched "libqt5ftp5-dev"

那么,我该如何安装诸如这样的软件包libqt5ftp5-devxar

答案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/QtNetworkQFtp

# include  "qftp.h"

保存文档。

我们回到需要使用QFtp项目的配置文件中添加

LIBS + = 
-lQt5Ftpd \ 
-lQtNetwork \

然后你可以#include <QtNetwork/QFtp>在项目的头文件中

注意,因为该Qt5Ftp库需要QtNetwork对象,所以 ftp 应该在上面。否则,undefined reference to QFtp :: QFtp (QObject *)编译时会出现类似 error: 的错误。

相关内容