You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++使用cpr库发起GET请求编译运行报错,出现内部错误如何解决?

问题修复方案

首先明确:你遇到的是编译阶段错误,和运行时的网络、防火墙配置完全无关,排查方向不需要考虑网络相关设置。

报错根因

你当前使用的MinGW 6.3.0默认使用C03标准编译代码,而cpr库依赖C11及以上版本的标准,用到的std::mutex、std::future都是C++11才引入的标准库组件,低版本标准下无法识别这些类型,就会触发你看到的两类报错。

修复步骤

  • 编译时指定C++11及以上的编译标准
    在你的编译命令中添加-std=c++11(或更高的-std=c++17)参数,同时要链接cpr依赖的curl库,参考编译命令:
    g++ meantest.cpp -o meantest -std=c++11 -lcpr -lcurl
    
  • 更换支持posix线程模型的MinGW版本
    如果你添加标准参数后仍然报错,说明你当前使用的MinGW是win32线程模型版本,不支持C++标准并发组件,需要更换为posix线程模型的MinGW版本,或直接升级到最新的MinGW-w64版本。
  • 可选:补充标准头文件引入
    如果cpr头文件没有自动引入依赖的并发头文件,可以在你代码的最顶部添加两个标准头文件:
    #include <mutex>
    #include <future>
    
    修改后的完整代码参考:
    #include <mutex>
    #include <future>
    #include <iostream>
    #include <cpr/cpr.h>
    #include <string>
    
    int main()
    {
        cpr::Response r = cpr::Get(cpr::Url{"http://api.plos.org/search?q=title:DNA"});
        std::cout << r.status_code << std::endl;
        return 0;
    }
    

内容的提问来源于stack exchange,提问作者ROgercad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:45:03