【在CentOS中使用Crow-基于C++的Web服务】
在CentOS中使用Crow-基于C++的Web服务
- 前言
- 目录
- 1.搭建C++开发环境
- 2.安装安装crow所需依赖
- 3.测试
- 参考
前言
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 crowTestmkdir 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 buildcmake ..
make
编译成功后进入项目的bin目录下,启动:
正式环境下我们需要使用nohup在后台运行,这里是为了方便测试,我们可以在另一个会话中进行测试:
测试成功
对于已有程序,可以结合crow,对外提供服务。
参考
CentOS搭建C++开发环境
centos 安装vim
Linux安装openssl
搭建C++微服务 crow
Linux下使用cake构建c++项目
【在CentOS中使用Crow-基于C++的Web服务】相关推荐
- 基于 REST 的 Web 服务:基础
from: https://www.ibm.com/developerworks/cn/webservices/ws-restful/ 基础 REST 定义了一组体系架构原则,您可以根据这些原则设计以 ...
- 【scrapy、flask】如何在社区版 PyCharm 中调试 scrapy爬虫和 flask web 服务
软件版本 PyCharm 2020.2 (Community Edition) ,此为官网上的免费社区版 Windows 10 操作系统 调试 scrapy 爬虫 编写 scrapy 爬虫启动的入口文 ...
- 在centos 下安装配置基于gitosis 的git 服务
前言 这里我用的系统是centos 6.2, 在服务器上的准备工作(服务器IP为10.0.2.8 ): 1.安装 openssh服务器与客户端工具 [plain] view plaincopy $ s ...
- 实践 | Centos 7搭建LVS+Keepalived高可用Web服务群集群
LVS + Keepalived 高可用集群 Keepalived的设计目标是构建高可用的LVS负载均衡的集群,可以调用ipvsadm工具创建虚拟机,不仅仅用作双机热备,还可以使用keepalived ...
- 在ubuntu 下安装基于 Tomcat6的web服务
安装 ubuntu 6.0 server 版本,安装成功如下 配置IP地址 修改/etc/network/interfaces 文件内容如下 auto lo iface lo inet loopbac ...
- php intval0.57100,应用NuSoap构建新型的基于PHP的Web服务
一个例子便能说明一切,让我们先看一个例子 为了说明如何应用nusoap和php来构建web services,我们将举一个简单的例子.这个例子应用程序由一个php web services的服务器端和 ...
- 在ASP.NET AJAX 1.0框架中访问Web服务
一. 简介 如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...
- 基于OWL-S的Web服务质量本体的描述模式的设计(转)
1 语义Web服务的描述语言OWL-S Web服务的发现,自动组合和互操作,都需要对服务进行一定的语义描述,基于WSDL的Web服务描述语言主要集中于数据交换和服务发布的语法标准,计算机缺乏对服务描述 ...
- IBM Lotus Domino 7 中的实用 Web 服务,第 1 部分: 什么是 Web 服务以及它们为何如此重要
Julian Robichaux, 开发人员, 独立顾问 Julian Robichaux 是专门研究 IBM Lotus Notes 和 Java 开发的软件开发人员和专业程序员.他擅长于各种与开发 ...
最新文章
- 乱思。。。。。。。、、、、、
- !--处理:借款冲销不自动冲减预算--
- switch判断条件
- flyme禁止系统更新_魅族Flyme更新8.1.2.3A:重要系统更新!
- 医院(jzoj 1611)
- 算法高级(33)-拓扑排序-maven依赖关系的确定
- (二)javascript中int和string转换
- java 传绝对路径无效_又传噩耗!知名主持人小济南因突发肺栓塞不幸去世,享年36岁...
- 【重点】剑指offer——面试题27:二叉搜索树与双向链表
- Leetcode 200.岛屿数量
- 开机时出现Windows will now check the disk怎么办
- 最新常用会计科目表及详细解释
- 量子计算与通讯的基本原理(量子纠缠)
- H3C ipsec psk aggressive mode配置
- python地图可视化前端页面展示_利用pyecharts实现地图可视化的例子
- 深入 WEP和 WPA密码原理 1
- 关于Linux系统之VM安装配置
- 究竟什么是图数据库,它有哪些应用场景?
- 翻译Beginning iOS 7 Development中文版
- 如何完成微信小程序的登录功能