我已经尝试过我可以在网上找到的所有指南,我非常接近但卡住了。该项目建立并运行。然而它立即崩溃。
我在Qt Creator 3.5.1
使用Qt 5.5.1
,编译器为MinGW 4.9.2 32 bit
。
我从http://curl.haxx.se/download.html下载的cUrl库是Win32 Generic Win32 7zip 7.45.0 binary SSL SSH Viktor Szakáts
我已经在.pro文件中添加了curl标题INCLUDEPATH += C:\Lib\C\curl-7.45.0-win32-mingw\include
此外,我右键单击了该项目,单击了“添加库”,选择了“系统库”,仅选择了Windows并设置为静态链接,并添加了libcurl.a
和libcurldll.a
,其中放在编译器C:\Qt\Tools\mingw492_32\lib
的lib目录中。此步骤将win32: LIBS += -lcurl
和win32: LIBS += -lcurldll
添加到.pro文件。
main.cpp中:
#include "mainwindow.h"
#include <QApplication>
#include <curl/curl.h>
int main(int argc, char *argv[]) {
CURLcode result = curl_global_init(CURL_GLOBAL_WIN32);
QApplication a(argc, argv);
MainWindow w;
w.show();
auto retVal = a.exec();
curl_global_cleanup();
return retVal;
}
坠机的原因是什么?
注意:cUrl在任何代码中都没有其他用途(它只是一个裸应用程序)。
答案 0 :(得分:0)
下载适用于Windows(64位)的curl:
https://curl.haxx.se/windows/dl-7.72.0_5/curl-7.72.0_5-win64-mingw.zip
或者是32位:
https://curl.haxx.se/windows/dl-7.72.0_5/curl-7.72.0_5-win32-mingw.zip
首先,您必须将curl文件夹放入qt文件夹。
这些是:
“包含”, “ lib”, “ bin”
导入(我使用64位版本的5.14.2)
F:/Qt/5.14.2/mingw73_64/lib、F:/Qt/5.14.2/mingw73_64/include, F:/Qt/5.14.2/mingw73_64/bin
然后从项目中转到.pro文件并添加以下行:
LIBS += -LF:/Qt/5.14.2/mingw73_64/lib -lcurl
注意-您必须将Path转到lib-QT安装目录。
现在您可以使用以下代码进行测试:
...
#include <curl/curl.h>
...
size_t WriteCallback(char *contents, size_t size, size_t nmemb, void *userp)
{
((std::string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
...
CURL* easyhandle = curl_easy_init();
std::string readBuffer;
curl_easy_setopt(easyhandle, CURLOPT_URL, "https://example.com");
curl_easy_setopt(easyhandle, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(easyhandle, CURLOPT_WRITEDATA, &readBuffer);
curl_easy_perform(easyhandle);
...
在这里您从curl请求(example.com)获得了http响应。