Sogou workflow 安装使用

Sogou workflow 安装

#1 环境

macOS 10.15.5
C++14
OpenSSL 1.1.1

#2 安装

  • OpenSSL

需要依赖于OpenSSL,推荐OpenSSL 1.1及以上版本

安装OpenSSL

brew install openssl
  • WorkFlow
git clone https://gitee.com/mirrors/sogou-cpp-workflow.git
cd sogou-cpp-workflow
mkdir build
cd build
cmake ..
make 
sudo make install

如果cmake因为OpenSSL失败: 指定OpenSSL路径

# 查看OpenSSL安装路径 
brew link openssl --force
For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
# 指定OpenSSL路径再cmake
cmake ../ -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1/ -DOPENSSL_LIBRARIES=/usr/local/opt/openssl@1.1/lib

#3 使用

一个简单的Http服务

#3.1 主函数

#include <iostream>
#include <signal.h>
#include <string>
#include <workflow/HttpMessage.h>
#include <workflow/WFServer.h>
#include <workflow/WFHttpServer.h>
#include <workflow/WFFacilities.h>

void process(WFHttpTask *server_task) {
    protocol::HttpRequest *request = server_task->get_req();
    protocol::HttpResponse *response = server_task->get_resp();

    std::string msg = "haha";
    response->append_output_body(msg.c_str(), msg.size());
    response->set_status_code("200");

}

static WFFacilities::WaitGroup wait_group(1);

void sig_handler(int signo) {
    wait_group.done();
}

int main(int argc, char *argv[]) {

    signal(SIGINT, sig_handler);

    WFHttpServer server(process);
    server.start(9090);
    wait_group.wait();
    server.stop();

    return 0;
}

#3.2 CMakeLists.txt

cmake_minimum_required(VERSION 3.17)
project(sogou_demo)

set(CMAKE_CXX_STANDARD 14)

include_directories(/usr/local/include) # Sogou workflow 头文件路径
include_directories(/usr/local/opt/openssl@1.1/include) # openssl头文件路径

set (OPENSSL_CRYPTO_LIBRARY /usr/local/opt/openssl@1.1/lib/libcrypto.dylib) # crypto动态链接库路径
set (OPENSSL_SSL_LIBRARY /usr/local/opt/openssl@1.1/lib/libssl.dylib) # ssl动态链接库路径

LINK_DIRECTORIES(/usr/local/lib/) # openssl静态链接库路径

add_executable(sogou_demo main.cpp) # 主函数

target_link_libraries(sogou_demo workflow ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) # workflow: 链接/usr/local/lib下的workflow静态链接库 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值