我正在尝试安装qftp,但它并没有真正起作用。我首先在github上恢复了源代码。然后我将源复制到Qt的src文件夹并重命名为“qtftp”文件夹,然后运行Perl syncqt.pl文件以生成标题和其他文件。然后我做了一个qmake,然后是一个make。
然后我将qtftp include文件夹中创建的QFtp文件夹复制到Qt include文件夹中。然后在我的项目的.pro文件中,我创建了一个在qtftp文件夹中创建的qt_ftp.pri文件的包含,并添加了QT + = ftp。我做了一个qmake,一切都很好。 #include不输出任何错误。
自我完成为Qftp完成了镍。但是在编译我的项目时,我有一个类型为“未定义引用'Qqft :: qftp(Qobject *)”的错误。我被卡住了,我不知道该怎么做。
答案 0 :(得分:0)
undefined reference to 'Qqft :: qftp (Qobject *)
表示链接器(由于某种原因)无法解析您在代码中对qftp
进行的函数调用。
QT += ftp
不会导致QMake将QFTP-Library添加到Makefile中的链接器调用中。如果libqftp.so
(或者,如果您使用的是Windows:qftp.dll
)或类似的内容存在,请查看您的makefile。qftp
的调用不是来自您自己的代码,而是来自您正在使用的其他库,则链接器调用中的库顺序可能是错误的。如果链接器在库A中找到未解析的符号,则它仅在链接器调用中之后中查找的库中查找它。如果是这种情况,您将不得不了解如何更改qmake生成的链接器调用中库的顺序。答案 1 :(得分:0)
我找到了解决方案。您只需要通过放置" include(.. \ mkspecs \ modules \ qt_lib_ftp.pri)"来修改位于\ modules文件夹中的qt_ftp.pri文件。在文件的第一行