0

我正在尝试安装 qftp,但它并没有真正起作用。我首先在 github 上恢复了资源。然后我将源代码复制到 Qt 的 src 文件夹并重命名“qtftp”文件夹,然后运行 ​​Perl syncqt.pl 文件以生成标题和其他文件。然后我做了一个qmake,然后是一个make。

然后我将在 qtftp 包含文件夹中创建的 QFtp 文件夹复制到 Qt 包含文件夹中。然后在我项目的 .pro 文件中,我包含了在 qtftp 文件夹中创建的 qt_ftp.pri 文件,并添加了 QT + = ftp。我做了一个qmake,一切都很好。#include 不输出任何错误。

自我完成完成了 Qftp 的镍。但是在编译我的项目时,我遇到了“未定义对 'Qqft :: qftp (Qobject *) 的引用”类型的错误。我被卡住了,我不知道该怎么办。

4

2 回答 2

0

undefined reference to 'Qqft :: qftp (Qobject *)意味着链接器(出于某种原因)无法解析qftp在代码中对您进行的函数调用。

  • 也许添加QT += ftp不会导致 QMake 将 QFTP-Library 添加到 Makefile 中的链接器调用中。libqftp.so如果(或者,如果您使用的是 Windows:)qftp.dll或类似的东西存在,请查看您的 makefile 。
  • 如果调用qftp不是来自您自己的代码,而是来自您正在使用的其他库,则链接器调用中的库顺序可能是错误的。如果链接器在库 A 中找到未解析的符号,它只会在链接器调用中 A之后提到的库中查找它。如果是这种情况,您将必须了解如何在 qmake 生成的链接器调用中更改库的顺序。
于 2017-12-10T23:06:37.660 回答
0

我找到了解决方案。您只需修改位于 \modules 文件夹中的 qt_ftp.pri 文件,将“include (..\mkspecs\modules\qt_lib_ftp.pri)”放在文件的第一行

于 2017-12-11T23:36:15.517 回答