mingw 编译 curl ,Qt 工程使用

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/logincurl_easy_setopt(curl, CURLOPT_URL, "http://example.com/login"); // Replace with your URL// Set the POST datacurl_easy_setopt(curl, CURLOPT_POSTFIELDS, "username=" + username + "&password=" + password);// Activate writing the received data to a buffer instead of sending it to stdoutcurl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);// Perform the POST requestres = curl_easy_perform(curl);// Check for errorsif(res != CURLE_OK) {std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;}// Always cleanupcurl_easy_cleanup(curl);}// Deinitialize cURL stuffcurl_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.rhkb.cn/news/131412.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Django】日志设置

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 LOGGING {version: 1,disable_existing_loggers: False,formatters: {verbose: {format: "[%(asctime)s] %(levelname)s [%(name)s:%(l…

探索AIGC人工智能(Midjourney篇)(四)

文章目录 Midjourney模特换装 Midjourney制作APP图标 Midjourney网页设计 Midjourney如何生成IP盲盒 Midjourney设计儿童节海报 Midjourney制作商用矢量插画 Midjourney设计徽章 Midjourney图片融合 Midjourney后缀参数 Midjourney模特换装 关键词生成模特照片 中国女性模特的…

Hadoop的第二个核心组件:MapReduce框架第一节

Hadoop的第二个核心组件&#xff1a;MapReduce框架第一节 一、基本概念二、MapReduce的分布式计算核心思想三、MapReduce程序在运行过程中三个核心进程四、如何编写MapReduce计算程序&#xff1a;&#xff08;编程步骤&#xff09;1、编写MapTask的计算逻辑2、编写ReduceTask的…

2023年数维杯数学建模A题河流-地下水系统水体污染研究求解全过程文档及程序

2023年数维杯数学建模 A题 河流-地下水系统水体污染研究 原题再现&#xff1a; 河流对地下水有着直接地影响&#xff0c;当河流补给地下水时&#xff0c;河流一旦被污染&#xff0c;容易导致地下水以及紧依河流分布的傍河水源地将受到不同程度的污染&#xff0c;这将严重影响…

SQL11 高级操作符练习(1)

描述 题目&#xff1a;现在运营想要找到男性且GPA在3.5以上(不包括3.5)的用户进行调研&#xff0c;请你取出相关数据。 示例&#xff1a;user_profile iddevice_idgenderageuniversitygpa12138male21北京大学3.423214male复旦大学4.036543female20北京大学3.242315female23浙…

C#__资源访问冲突和死锁问题

/// 线程的资源访问冲突&#xff1a;多个线程同时申请一个资源&#xff0c;造成读写错乱。 /// 解决方案&#xff1a;上锁&#xff0c;lock{执行的程序段}:同一时刻&#xff0c;只允许一个线程访问该程序段。 /// 死锁问题&#xff1a; /// 程序中的锁过多&#xf…

Java笔记:GC日志

1. 启用GC日志 -verbose:gc -XX:PrintGC -XX:PrintGCDetails -XX:PrintGCDateStamps -Xloggc:/opt/logs/gc.log在JDK 8中&#xff0c; -verbose:gc是 -XX:PrintGC一个别称&#xff0c;日志格式等价与&#xff1a; -XX:PrintGC。 不过在JDK 9中 -XX:PrintGC被标记deprecated…

ACM模板二:树、图、并查集、DancingLink

目录 〇&#xff0c;全文说明、宏定义代码 一&#xff0c;二叉树 二&#xff0c;树状数组、线段树 三&#xff0c;多叉树 四&#xff0c;并查集、DancingLink、无向图、最小生成树 五&#xff0c;有向图、单源最短路径、连通分量、拓扑排序 六&#xff0c;网格图、回路链…

深入解析顺序表:揭开数据结构的奥秘,掌握顺序表的精髓

&#x1f493; 博客主页&#xff1a;江池俊的博客⏩ 收录专栏&#xff1a;数据结构探索&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅C语言进阶之路&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f525;编译环境&#xff1a;Visual Studio 2022&#x1f38…

【业务功能篇99】微服务-springcloud-springboot-电商订单模块-生成订单服务-锁定库存

八、生成订单 一个是需要生成订单信息一个是需要生成订单项信息。具体的核心代码为 /*** 创建订单的方法* param vo* return*/private OrderCreateTO createOrder(OrderSubmitVO vo) {OrderCreateTO createTO new OrderCreateTO();// 创建订单OrderEntity orderEntity build…

【ESP32】带 log 记录的 malloc 动态申请内存,用于debug 调试查找报错原因

本文章以ESP32为依托&#xff0c;旨在解决在【嵌入式工程】开发过程中&#xff0c;在动态申请内存这部分&#xff0c;由于 malloc 之后&#xff0c;忘记 free 释放&#xff0c;造成内存溢出导致 MCU重启的问题 &#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好…

linux安装nacos2.2.0

1、使用docker拉取镜像&#xff1a;docker pull nacos/nacos-server:v2.2.0 2、下载官方配置文件&#xff1a;https://github.com/alibaba/nacos/releases 3、修改配置文件的数据库连接信息&#xff0c;修改完成后将配置文件移至挂载目录/home/shixp/docker/nacos/conf&#xf…

统计表和流程分析,也能同屏呈现_三叠云

表单统计&流程分析 路径 表单设计 >> 表单设置 >> 拓展设置 >> 表单统计 功能简介 新增表单统计、流程分析功能&#xff08;Beta版&#xff09;。可在当前列表&#xff0c;直接看到表单的统计表和流程分析数据统计图表。 1. 统计表&#xff1a;统计…

实时美颜的背后:视频直播美颜SDK的算法与原理

美颜技术的应用范围已经广泛扩展&#xff0c;从自拍照片到视频直播&#xff0c;都可以看到它的踪迹。然而&#xff0c;视频直播的实时性要求比静态图像高得多。要实现实时美颜&#xff0c;必须克服许多技术挑战。这就是视频直播美颜SDK的用武之地。 一、实时美颜的挑战 实时…

如何使用CMD恢复删除的分区?

分区删除后可以恢复吗&#xff1f; 磁盘分区旨在二级存储上创建一个或多个区域&#xff0c;然后你可以单独管理每个区域&#xff0c;这些区域就是分区。因此&#xff0c;对新安装的存储设备进行分区是很重要的环节&#xff0c;只有分区后才可以在这些设备上创建文件并保存数…

Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等)

Spring Boot 下载文件(word/excel等)文件名中文乱码问题&#xff5c;构建打包不存在模版文件(templates等) 准备文件&#xff0c;这里我放在resource下的templates路径 在pom中配置构建打包的资源&#xff0c;更新maven 如果使用了assembly打包插件这样配置可能仍不生效&#…

理财是什么?怎样学习理财?

大家好&#xff0c;我是财富智星&#xff0c;今天跟大家分享一下理财是什么&#xff1f;怎样学习理财的方法。 一、理财的基本原则 1、理财应注重投资而不是投机&#xff0c;要与时间为友。 让我们先考虑以下问题&#xff1a;什么样的回报才算是真正的高回报&#xff1f;假设有…

2023年一级建造师建设工程经济真题

2023年一级建造师建设工程经济真题 1.根据《建设工程工程量清单计价规范》规定&#xff0c;代表专业工程的项目编码是 ()。 A、1&#xff0c;2 B、3&#xff0c;4 C、5&#xff0c;6 D、7&#xff0c;8&#xff0c;9 【答案】B 2.某公司希望所投资项目在第5年末回收1000万…

LoGoNet:基于局部到全局跨模态融合的精确 3D 目标检测

论文地址&#xff1a;https://arxiv.org/abs/2303.03595 论文代码&#xff1a;https://github.com/sankin97/LoGoNet 论文背景 激光雷达传感器点云通常是稀疏的&#xff0c;无法提供足够的上下文来区分远处的区域&#xff0c;从而造成性能次优。 激光雷达-摄像机融合方法在三…