mingw 编译 curl ,Qt 工程使用

news2025/1/23 13:14:52

mingw 编译 curl

下载curl 源码

https://github.com/curl/curl

我使用8.3版

CMake-gui 配置

源码路径:D:/workspace/CPP/curl-8.3.0
生成路径: D:/workspace/CPP/curl-8.3.0/mingw-build

点击 Configure ,弹窗配置,选择 MinGW Makefiles 选择 Specify native compilers
在这里插入图片描述

点击 next 配置编译器路径
C 编译器 : C:/Qt/Qt5.12.12/Tools/mingw730_64/bin/gcc.exe
C++ 编译器 : C:/Qt/Qt5.12.12/Tools/mingw730_64/bin/g++.exe

点击 Finish

报错 : CMake Error: CMake was unable to find a build program corresponding to “MinGW Makefiles”. CMAKE_MAKE_PROGRAM is not set.

勾选 Advanced 配置 CMAKE_MAKE_PROGRAM 变量 C:/Qt/Qt5.12.12/Tools/mingw730_64/bin/mingw32-make.exe

生成 Makefiles

点击Generate 生成

编译

打开 Qt mingw 命令行窗口

切换到 生成 Makefiles的路径 D:\workspace\CPP\curl-8.3.0\mingw-build

cd /d  D:\workspace\CPP\curl-8.3.0\mingw-build

输入命令编译:

mingw32-make -f Makefile

生成库 libcurl.dll.a libcurl.dll:
在这里插入图片描述

在Qt 工程中使用

新建Qt 工程
在源码目录新建 libcurl :
curl 源码 include 目录 copy到 libcurl

libcurl/include/curl
lib/libcurl.dll
lib/libcurl.dll.a

pro中添加

LIBS += -L$$PWD/libcurl/lib/ -llibcurl.dll
INCLUDEPATH += $$PWD/libcurl/include
DEPENDPATH += $$PWD/libcurl/include

main.cpp 中替换 http://example.com/login 为需要测试的url

#include <iostream>
#include <curl/curl.h>
#include <string>
size_t WriteCallback(void *contents, size_t size, size_t nmemb, std::string *userp) {
    userp->append((char*)contents, size * nmemb);
    return size * nmemb;
}
std::string postData(const std::string& username, const std::string& password) {
    CURL *curl;
    CURLcode res;
    std::string buffer;
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if(curl) {

        //http://example.com/login
        curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/login"); // Replace with your URL
        // Set the POST data
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "username=" + username + "&password=" + password);
        // Activate writing the received data to a buffer instead of sending it to stdout
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
        // Perform the POST request
        res = curl_easy_perform(curl);
        // Check for errors
        if(res != CURLE_OK) {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        }
        // Always cleanup
        curl_easy_cleanup(curl);
    }
    // Deinitialize cURL stuff
    curl_global_cleanup();
    return buffer;
}
int main() {
    std::string username = "myusername";
    std::string password = "mypassword";
    std::string response = postData(username, password);
    std::cout << response << std::endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Codeforces Round 896 (Div. 2)

A.Make It Zero 思维题 当n为偶数时,对1到n异或使得1到n全部变成一样的数,再对1到n异或,使得全部变成0 当n为奇数时,对1到2异或使得1到2全部变成一样的,再对1到2异或,使得1到2都变成0,然后再两次对2到n AC代码: #include<iostream> #include<algorithm> #incl…

建筑模板国家标准GB/T 17656-2018

建筑模板国家标准GB/T 17656-2018《混凝土模板用胶合板》的重要性与应用 GB/T 17656-2018《混凝土模板用胶合板》国家标准是建筑模板行业的重要指导性文件&#xff0c;旨在确保混凝土模板的质量、安全和可靠性&#xff0c;促进建筑施工的高效进行。该标准详细规定了混凝土模板用…

DuDuTalk:4G语音工牌,如何实现家庭上门维修服务过程的智能化管理?

随着上门按摩、上门养老、上门买菜、上门维修等互联网上门服务的兴起&#xff0c;越来越多的居民开始采用线上下单&#xff0c;享受企业安排人员上门到家的服务。而家庭维修作为到家服务里面典型的一个场景&#xff0c;已成为许多人不可或缺的一部分。然而&#xff0c;与此同时…

【校招VIP】排序算法之高级排序

考点介绍&#xff1a; 在校招面试中,排序算法是经常被问到的。排序算法又比较多,很容易遗忘和混淆。有相当同学校招卡在排序的实现上,要么是核心代码实现不了,要么是实现方法串台。大厂的考察重点在快速排序等高级排序上。 排序算法之高级排序-相关题目及解析内容可点击文章末…

高级感满满的巡课效果怎么做?一招搞定!

学校是培养未来一代领袖和知识传承的地方&#xff0c;因此&#xff0c;确保学校内的教育质量和管理效率至关重要。在这个信息时代&#xff0c;技术正在不断演进&#xff0c;为学校管理和监督提供了更多的工具和方法。 在线巡课系统可以帮助学校管理人员更好地监督教学活动、评估…

【操作系统】进程的状态

进程的五种状态 创建&#xff0c;就绪&#xff08;等待分配处理机CPU资源&#xff09;&#xff0c;执行&#xff0c;阻塞&#xff08;叫阻塞因为相对CPU来说它很慢&#xff0c;等待除CPU以外的资源&#xff0c;如I/O&#xff09;&#xff0c;终止。 创建好的进程放入就绪队列等…

基于永磁同步发电机的风力发电系统研究(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

MS SQL Server问题汇总

1.报SQL Server Agent连接不上的错误 15:38:57.991 [debezium-sqlserverconnector-sqlserver_transaction_log_source-change-event-source-coordinator] WARN i.d.connector.sqlserver.SqlServerStreamingChangeEventSource - No maximum LSN recorded in the database; pl…

mysql中left join时join和on的先后顺序

1.mysql中在内连接时,on的效果无论是对驱动表还是非驱动表和where的效果是一样的 ,on的顺序在join的前面 2.在外连接中 on 中添加筛选条件,只会对非驱动表生效,对驱动表是没有作用的,所以只有对非驱动表时,on的顺序是在join前面

pytorch代码实现之分布偏移卷积DSConv

DSConv卷积模块 DSConv&#xff08;分布偏移卷积&#xff09;可以容易地替换进标准神经网络体系结构并且实现较低的存储器使用和较高的计算速度。 DSConv将传统的卷积内核分解为两个组件&#xff1a;可变量化内核&#xff08;VQK&#xff09;和分布偏移。 通过在VQK中仅存储整…

天津Java培训班 Java的就业方向有那哪些?

Java具有独特的卓越通用性、效率性、安全性和平台可移植性等优点&#xff0c;近年来得到了众多学生的支持&#xff0c;它可以应用于跨平台的不同领域&#xff0c;工作需求量非常大&#xff0c;并且在业务应用程序的发展中扮演着重要的角色。因此有许多人想要转行成为Java工程师…

达梦数据库之 PERCENT_RANK()over()函数和 PERCENTILE_CONT() WITHIN GROUP()OVER()函数详解

排列百分比 PERCENT_RANK 例 求图书的现价排列百分比。 SELECT NAME, PERCENT_RANK() OVER(ORDER BY NOWPRICE) AS NTILE FROM PRODUCTION.PRODUCT; 查询结果如下&#xff1a; NAMENTILE老人与海0.000000000000000E000突破英文基础词汇1.111111111111111E-001工作中无小事2.2…

换行符转换

将\t\n、\n、多个\n\n\n...转换为\n\n。 import pandas as pd import re # 创建一个示例DataFrame data {msgText: [这是示例文本1&#xff0c;包含\t\n换行符,这是示例文本2&#xff0c;包含\n\n多个\n换行符,这是示例文本3&#xff0c;没有换行符]} df pd.DataFrame(data)…

通过命令设置ECS密码,无需重启

1、在阿里云找到服务器实例&#xff1b; 2、定时与自动化任务-->单击“发送命令”&#xff1b;---------------------------------------- # linux echo "root:<yourPassword>"|chpasswd # windows net user "Administrator" "<yourPassw…

element+vue table上移+下移 拖拽

//安装 npm install sortablejs --save<el-table :data"statisticsChexkboxs" border max-height"300px" width"740px" row-key"id"ref"projectTable"><el-table-column v-for"item in confirmHead" :ke…

产品经理有必要考pmp证书吗?

随着产品经理职位的日益重要和受欢迎&#xff0c;越来越多的人开始考虑是否有必要考取项目管理专业&#xff08;Project Management Professional&#xff0c;简称PMP&#xff09;证书。对于产品经理而言&#xff0c;是否需要考取PMP证书是一个有争议的问题。本文将探讨产品经理…

pyarmor 加密许可证的使用

一 pyarmor 许可证的用处 文档&#xff1a;5. 许可模式和许可证 — Pyarmor 8.3.6 文档 试用版本有如下的限制&#xff1a; 加密功能对脚本大小有限制&#xff0c;不能加密超过限制的大脚本。 混淆字符串功能在试用版中无法使用。 RFT 加密模式&#xff0c;BCC 加密模式在试…

Ubuntu20.04 开机卡在[OK] Started ****,无法正常开机

本人使用Ubuntu20.04版本&#xff0c;因显卡驱动问题无法使用外接显示器&#xff0c;安装对应版本的NVIDIA驱动之后&#xff0c;开机卡在如下界面&#xff08;Ubuntu和NVIDIA驱动冲突实属家常便饭&#xff0c;有的还会出现循环登录的情况&#xff09; 解放方法 禁用NVIDIA驱动…

遥遥领先的内存函数

目录 ​编辑 函数介绍 1.1 strlen 1.2 strcpy 1.3 strcmp 1.4 strcat 1.5 strstr 2.1 memcpy 2.2 memmove 2.3 memcmp 函数实现 1.1 strlen 1.2 strcpy 1.3 strcmp 1.4 strcat 1.5 strstr 2.1 memcpy 2.3 memcmp 函数介绍 1.1 strlen size_t strlen ( const char *…

【Spring面试】七、AOP相关

文章目录 Q1、什么是AOP&#xff1f;能做什么&#xff1f;Q2、解释下Spring AOP中常见的概念名词Q3、Spring AOP的通知有哪些类型&#xff1f;Q4、Spring AOP和AspectJ AOP有什么区别&#xff1f;Q5、JDK动态代理和CGLIB动态代理的区别是什么&#xff1f;Q6、JavaConfig方式如何…