Linux编译安装 drogon(高性能http服务器)

发布时间 2023-10-22 23:36:15作者: 黄河大道东

实际上还是建议用Ubuntu进行编译,要方便的多

drogon编译安装:https://zhuanlan.zhihu.com/p/601632372

drogon编译安装:https://wenku.baidu.com/view/4408ed4e84c24028915f804d2b160b4e777f8150.html

一、编译前置依赖项目 jsoncpp

# 项目地址:https://github.com/open-source-parsers/jsoncpp
wget https://github.com/open-source-parsers/jsoncpp/archive/refs/tags/1.9.5.tar.gz
# 解压 -> 创建编译目录 -> 使用cmake生成Makefile文件 -> 编译 -> 安装
tar -xvf 1.9.5.tar.gz && cd jsoncpp-1.9.5 && mkdir build && cd build && cmake .. && make -j4 && make install

二、下载前置依赖项目 trantor 源码

注意:不要下载最新的

# 项目地址:https://github.com/an-tao/trantor/tree/dd133c7bca937c652c76cb03c9e128fd76fb7bda
# 下载指定版本 1.5.11 版本
wget https://github.com/an-tao/trantor/archive/refs/tags/v1.5.11.tar.gz
# 解压,但不编译,将解压后的文件全部移动至 drogon 项目源码中的 trantor 目录中去
tar -xvf v1.5.11.tar.gz && cd trantor-1.5.11

三、编译 drogon 项目源码

注意:不要下载最新的

# 项目地址:https://github.com/drogonframework/drogon
# 下载 1.8.4 版本
wget https://github.com/drogonframework/drogon/archive/refs/tags/v1.8.4.tar.gz
tar -xvf v1.8.4.tar.gz && cd drogon-1.8.4
# 将 trantor 的源码移动至这个工程里
# 执行编译脚本,在 build 目录下会生成 libdrogon.a,在 build/trantor 目录下会生成 libtrantor.a
./build.sh

测试

【main.cpp】
#include <drogon/drogon.h>
using namespace drogon;
int main() {
    app().setLogPath("./").setLogLevel(trantor::Logger::kWarn)
	.addListener("0.0.0.0", 80).setThreadNum(16).enableRunAsDaemon().run();
}
// 编译指令:g++ -std=c++17 -o main main.cpp libdrogon.a libtrantor.a -lpthread -lssl -lcrypto -ldl -luuid -lsqlite3 -lz -ljsoncpp

参考

https://github.com/drogonframework/drogon/issues/1702

解决:undefined reference to symbol'inflateInit2_'https://blog.csdn.net/lanyang123456/article/details/45769313