Pistache 是一个现代且优雅的 C++ HTTP 和 REST 框架。它完全用纯 C++17 *编写,并提供清晰且令人愉快的 API。
安装pistahce前需先安装相关依赖:
1.安装openssl
sudo yum install openssl openssl-devel
2.安装rapidjson
- 克隆RapidJSON的源代码:git clone https://github.com/Tencent/rapidjson.git
- 进入rapidjson目录,创建一个build目录并进入该目录:
cd rapidjson mkdir build cd build
- 在build目录中运行以下命令:
make -DCMAKE_CXX_FLAGS="-Wno-error=effc++" .. make
这些命令将会使用CMake生成构建文件,并使用make命令进行编译。编译完成后,您可以在bin目录下找到编译后的测试和示例可执行文件。
3.安装libcurl
meson依赖libcurl 需提前安装:sudo yum install libcurl-devel
4.安装meson
使用pip3命令:pip3 install --user meson
5.安装ninja
pip3 install ninja
6.安装python3.9
参考:CentOS 7升级Python到最新版3.9.1_centos7 升级python_zhangphil的博客-CSDN博客
建议安装3.7以上版本,不然会提示:
不过我3.6好像也可以
7.g++切换到devtoolset-11
参考:https://blog.csdn.net/liuhongxiangm/article/details/124129742
8.安装peitache
参考:https://github.com/pistacheio/pistache#building-from-source
$ cd pistache
$ meson setup build \
--buildtype=release \
-DPISTACHE_USE_SSL=true \
-DPISTACHE_BUILD_EXAMPLES=true \
-DPISTACHE_BUILD_TESTS=true \
-DPISTACHE_BUILD_DOCS=false \
--prefix="$PWD/prefix"
$ meson compile -C build
$ meson install -C build
9.测试代码
#include <pistache/endpoint.h>
using namespace Pistache;
struct HelloHandler : public Http::Handler {
HTTP_PROTOTYPE(HelloHandler)
void onRequest(const Http::Request&, Http::ResponseWriter writer) override {
writer.send(Http::Code::Ok, "Hello, World!");
}
};
10.编译
g++ -std=c++17 -O2 -Wall -Wextra -o my_server myServer.cpp -L/home/caiweibin/pistache/build/src/ -lpistache -lpthread
如果把库文件libpistache.so拷贝到/usr/local/bin目录下的话就可以不指定路径
11.运行
export LD_LIBRARY_PATH=/home/caiweibin/pistache/build/src/
./my_server
12.生成的库文件拷贝到/usr/local/lib文件夹下、创建软连接
cp ./build/src/libpistache.so.0.1.1 /usr/local/lib
cd /usr/local/lib
ln -s libpistache.so.0.1.1 libpistache.so