无法在 CPP 应用程序中使用 CPR 库打开包含文件 cpr/cprver.h
can not open include file cpr/cprver.h using CPR library in CPP application
你好,我在 cpp 应用程序中使用 CPR 库向我的 api 发出 http 请求,但是在我添加其他包含目录后,我收到类似 'can not open include file cpr/cprver.h'
的错误
根据我的检查,cpr 文件夹中没有名为 cprver.h 的文件。
我做了什么:
- 从 https://github.com/whoshuu/cpr
下载 CPR 库
- 使用额外的包含目录在 cpp 项目中添加库:我给出了一个路径,直到 D:\cpr-master\include.
#include <cpr/cpr.h>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
cpr::Response r = cpr::Get(
cpr::Url{ "https://jsonplaceholder.typicode.com/todos/1" });
cout << r.status_code << "\n"; // 200
cout << r.header["content-type"] << "\n"; // application/json;charset=utf-8
cout << r.text << "\n"; // JSON text string
return 0;
}
error: can not open include file cpr/cprver.h.
There is no error in code.
Hope i explain well. Thank you in advance.
我认为仅从 Github 下载 cpr
库是不够的,您应该针对您的二进制文件构建 link cpr
。
根据documentation,有几种使用方法cpr
:
Cmake
If you already have a CMake project you need to integrate C++ Requests with, the primary way is to use fetch_content
. Add the following to your CMakeLists.txt.
include(FetchContent)
FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git
GIT_TAG 6ea2dec23c3df14ac3b27b7d2d6bbff0cb7ba1b0) # The commit hash for 1.8.1. Replace with the latest from: https://github.com/libcpr/cpr/releases
FetchContent_MakeAvailable(cpr)
这将产生目标 cpr::cpr
,您可以 link 反对典型的方式:
target_link_libraries(your_target_name PRIVATE cpr::cpr)
应该可以了!无需自己处理 libcurl。所有依赖项都为您处理。
所有这些都可以在此处的示例中找到。
如果你想在不同的平台上构建你的应用程序,我认为 Cmake
是正确的方法。
vcpkg
由于您正在研究 Windows,我认为 vcpkg
是最简单的方法:
您可以使用 vcpkg 依赖管理器下载并安装 cpr:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
vcpkg 中的 cpr
端口由 Microsoft 团队成员和社区贡献者保持最新。如果版本已过期,请在 vcpkg 存储库上创建问题或拉取请求。
你好,我在 cpp 应用程序中使用 CPR 库向我的 api 发出 http 请求,但是在我添加其他包含目录后,我收到类似 'can not open include file cpr/cprver.h'
的错误根据我的检查,cpr 文件夹中没有名为 cprver.h 的文件。
我做了什么:
- 从 https://github.com/whoshuu/cpr 下载 CPR 库
- 使用额外的包含目录在 cpp 项目中添加库:我给出了一个路径,直到 D:\cpr-master\include.
#include <cpr/cpr.h>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
cpr::Response r = cpr::Get(
cpr::Url{ "https://jsonplaceholder.typicode.com/todos/1" });
cout << r.status_code << "\n"; // 200
cout << r.header["content-type"] << "\n"; // application/json;charset=utf-8
cout << r.text << "\n"; // JSON text string
return 0;
}
error: can not open include file cpr/cprver.h.
There is no error in code.
Hope i explain well. Thank you in advance.
我认为仅从 Github 下载 cpr
库是不够的,您应该针对您的二进制文件构建 link cpr
。
根据documentation,有几种使用方法cpr
:
Cmake
If you already have a CMake project you need to integrate C++ Requests with, the primary way is to use
fetch_content
. Add the following to your CMakeLists.txt.
include(FetchContent)
FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git
GIT_TAG 6ea2dec23c3df14ac3b27b7d2d6bbff0cb7ba1b0) # The commit hash for 1.8.1. Replace with the latest from: https://github.com/libcpr/cpr/releases
FetchContent_MakeAvailable(cpr)
这将产生目标 cpr::cpr
,您可以 link 反对典型的方式:
target_link_libraries(your_target_name PRIVATE cpr::cpr)
应该可以了!无需自己处理 libcurl。所有依赖项都为您处理。 所有这些都可以在此处的示例中找到。
如果你想在不同的平台上构建你的应用程序,我认为 Cmake
是正确的方法。
vcpkg
由于您正在研究 Windows,我认为 vcpkg
是最简单的方法:
您可以使用 vcpkg 依赖管理器下载并安装 cpr:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
vcpkg 中的 cpr
端口由 Microsoft 团队成员和社区贡献者保持最新。如果版本已过期,请在 vcpkg 存储库上创建问题或拉取请求。