6

目前我已经在我的系统上安装了qt-windows-opensource-5.1.1-msvc2012-x86_64-offline

一切正常,但我不能真正成功地在我的 Qt 项目上使用 libCurl。

我已经下载了这个版本的 libcurl: http ://curl.haxx.se/download/libcurl-7.19.3-win32-ssl-msvc.zip

MSVC metalink   7.19.3  devel   SSL         Frederic Elbin  4.04 MB

我已将包含文件夹从存档移动到 VC 包含文件夹,并且我已将#include包含在程序中并且效果很好。

现在在 lib 文件夹上还有另外两个名称为:Debug 和 Release 的文件夹,它们里面都有一些文件。

在我的 .pro 文件中,我添加了:

win32: LIBS += -L$$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc/ -llibcurl_imp

INCLUDEPATH += $$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc
DEPENDPATH += $$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc/lib/release/ -lcurllib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc/lib/debug/ -lcurllib

INCLUDEPATH += $$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc/lib/Debug
DEPENDPATH += $$PWD/../../../../../libcurl-7.19.3-win32-ssl-msvc/lib/Debug

现在,当我尝试运行一个简单的程序时,我得到了:

mainwindow.obj:-1: error: LNK2019: unresolved external symbol __imp_curl_easy_init referenced in function "private: void __cdecl MainWindow::on_pushButton_clicked(void)" (?on_pushButton_clicked@MainWindow@@AEAAXXZ)

在下载的档案中还有更多其他文件:http: //img13.imageshack.us/img13/1416/reh8.png

可能我现在可以很好地包含库(内部/外部或动态/静态),但我不知道要包含哪个以及如何包含。还有一些我不知道该怎么处理的 .dll 文件。

有人在 Qt 项目中成功使用 libcurl 吗?我是 Qt 的初学者,这对我来说很难……</p>

谢谢。

4

2 回答 2

2

好吧,我可以告诉我如何在 QT 中使用 libCurl。如果有人再次遇到这个问题。但是我使用的是mingw版本,所以可能会有所不同。

在 .pro 文件中:

INCLUDEPATH += C:\Users\pagep\QT\curl-7.31.0-devel-mingw32\include
LIBS += C:\Users\pagep\QT\curl-7.31.0-devel-mingw32\lib\libcurldll.a

在“调试”文件夹(执行程序的文件夹)中,我从文件夹curl-7.31.0-devel-mingw32\bin添加了 .dll 文件

libcurl.dll
libeay32.dll
libidn-11.dll
librtmp.dll
libssh2.dll
ssleay32.dll
zlib1.dll

好吧,这可能不是最好的解决方案,但它对我有用。:)

于 2014-01-11T00:28:10.393 回答
2

这可能不是您问题的答案,但我建议使用 QNetworkAccessManager 类而不是 libcurl。你几乎可以用这个类做任何你可以使用 libcurl 做的事情。你的代码会更简单,更干净。一些著名的基于 Qt 的全功能下载管理器使用这个类。

于 2013-09-24T07:22:23.143 回答