【在CentOS中使用Crow-基于C++的Web服务】

前言

crow是一个基于C++的web微服务框架,在使用上和python中的flask框架类似,利用它我们可以设计RESTful Api。使用crow需要在CentOS中搭建C++开发环境,安装所需依赖。

目录

  1. 搭建C++开发环境
  2. 安装crow所需依赖
  3. 测试

1.搭建C++开发环境

安装以下工具

yum -y install gcc
yum -y install gcc-c++
yum -y install gdb
yum -y install git
yum -y install cmake
yum -y install vim*

测试hello world程序

hello.cpp:

#include <stdio.h>
int main(){
    printf("hello World\n");
    return 0;
}

编译运行:
在这里插入图片描述

2.安装安装crow所需依赖

项目地址:https://github.com/ipkn/crow
克隆到本地:git clone https://gitclone.com/github.com/ipkn/crow.git
只是为了使用的话,可以直接下载完整的头文件:https://github.com/ipkn/crow/releases/download/v0.1/crow_all.h
crow依赖于boost library,可以进行编译安装,或者选择简单的方法:yum install boost boost-devel,若系统缺少openssl,也需安装yum install openssl openssl-devel

3.测试

首先需要搭建一个C++项目,这样可以使用cmake命令帮助我们编译

mkdir crowTest
cd crowTest

mkdir bin
mkdir lib
mkdir src
mkdir include
mkdir build
touch CMakeLists.txt

将前文中下载的 crow_all.h 文件放入include文件夹中,同时在src下新建 hello.cpp 文件,内容参考crow项目中的自带示例:

hello.cpp:

#include "crow_all.h"

int main()
{
    crow::SimpleApp app;

    CROW_ROUTE(app, "/")([](){
        return "Hello world\n";
    });

    app.port(18080).multithreaded().run();
}

CMakeLists.txt 中的内容如下:

project(crowTest)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
include_directories(${PROJECT_SOURCE_DIR}/include)

set(BOOST_ROOT "/usr/include/boost")
set(BOOSTROOT "/usr/include/boost")
include_directories(/usr/include)
link_directories(/usr/lib)

FIND_PACKAGE(Threads REQUIRED)
SET(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS system)

add_executable(crowTest src/hello.cpp)
target_link_libraries(crowTest boost_thread boost_system ${CMAKE_THREAD_LIBS_INIT})

1-4行设置项目相关信息,接下来设置boost相关信息,需要根据boost的安装位置来设置

完成后进行编译:

cd build

cmake ..
make

编译成功后进入项目的bin目录下,启动:
在这里插入图片描述

正式环境下我们需要使用nohup在后台运行,这里是为了方便测试,我们可以在另一个会话中进行测试:
在这里插入图片描述

测试成功

对于已有程序,可以结合crow,对外提供服务。

参考

CentOS搭建C++开发环境
centos 安装vim
Linux安装openssl
搭建C++微服务 crow
Linux下使用cake构建c++项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值