C++ CPR库安装报错 找不到cpr/cpr.h、curl/curlver.h如何解决
修复CPR库引入报错问题
核心报错原因
你遇到的两个报错本质是两个配置缺失:
- 编译器没有把CPR的头文件目录加入搜索路径,所以找不到
cpr/cpr.h - CPR底层依赖libcurl库,你没有配置libcurl的头文件、库文件路径,因此连带找不到curl的依赖头文件
修复方案(优先选方案1,对新手容错率更高)
方案1:用CMake管理项目
- 第一步先安装libcurl依赖:Windows下推荐用vcpkg安装,执行命令
vcpkg install curl:x64-windows即可;如果不用vcpkg也可以直接下载libcurl预编译二进制包,注意下载的版本要和你使用的编译器(MSVC/MinGW)、位数(32/64位)匹配。 - 在项目根目录(和main.cpp、cpr文件夹同级的目录)新建
CMakeLists.txt,写入以下内容:
cmake_minimum_required(VERSION 3.15) project(cpr_demo) # 指定C++标准,CPR要求至少C++17 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 引入CPR子目录 add_subdirectory(cpr) # 生成可执行文件 add_executable(main main.cpp) # 链接CPR库,CMake会自动配置所有头文件、依赖库路径 target_link_libraries(main PRIVATE cpr::cpr)
- VSCode安装CMake Tools插件后,点击底部状态栏的「配置」「构建」「运行」按钮即可正常编译运行,不需要手动配置任何路径。
方案2:手动配置VSCode编译参数
如果不想用CMake,可以手动修改VSCode的配置文件:
- 打开项目
.vscode目录下的c_cpp_properties.json,在includePath数组中添加两个路径:- CPR的头文件路径:
${workspaceFolder}/cpr/include - 你安装的libcurl的头文件路径,例如curl放在C盘根目录就写
C:/curl/include
- CPR的头文件路径:
- 打开同目录下的
tasks.json,在编译参数的args数组中补充以下参数:- 头文件搜索参数:
-I${workspaceFolder}/cpr/include、-IC:/curl/include(MinGW编译器),如果是MSVC编译器则写/I${workspaceFolder}/cpr/include、/IC:/curl/include - 库文件搜索参数:
-LC:/curl/lib(MinGW)或/libpath:C:/curl/lib(MSVC) - 链接库参数:
-lcurl、-lcpr(MinGW)或curl.lib、cpr.lib(MSVC)
- 头文件搜索参数:
- 注意提前编译好CPR和libcurl的静态/动态库,放在对应的lib路径中,否则会出现链接报错。如果用动态库,运行时需要把
cpr.dll和curl.dll放到可执行文件同目录下。
内容的提问来源于stack exchange,提问作者BlackdestinyXX
相关产品推荐
相关产品推荐

