在CentOS中使用Crow-基于C++的Web服务
前言
crow是一个基于C++的web微服务框架,在使用上和python中的flask框架类似,利用它我们可以设计RESTful Api。使用crow需要在CentOS中搭建C++开发环境,安装所需依赖。
目录
- 搭建C++开发环境
- 安装crow所需依赖
- 测试
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++项目