1 搭建Crow 开发环境
Crow是一个基于Asio或者Boost.Asio的创建Http服务或者Websocket服务的C++框架。
1.1 官网教程
Crow的官方文档中比较简单的介绍了如何在Linux、MacOS、Windows系统上编译、安装Crow库。
从官方文档上看,编译和使用Crow需要依赖以下环境:
- 需要支持C++11的编译器
- 需要Asio,版本至少为1.10.9或者更新的版本
- 如果需要Http Compression,则需要ZLib
- 如果需要Https,则需要OpenSSL
Crow非常易于使用,只需要包含头文件,其提供了两个版本,这两个版本的区别是:非单个头文件版本可以只依赖Asio,这也是一个头文件库;而单个头文件版本依赖Boost.Asio,需要依赖Boost。
这两个版本区别导致我们在配置Crow开发环境的时候有区别,如果我们使用单个头文件版本,则需要依赖Boost.Asio进而依赖Boost,而如果我们使用非单个头文件版本则只是需要使用Asio,而Asio也是一个头文件库,所以按我的习惯是使用非单个头文件版本,不会依赖非常重的Boost。下面的环境配置教程也是以Crow+Asio这种搭配为例子。
1.2 Crow和Asio
1.2.1 下载Crow
我们可以先从Crow的github仓库拉取仓库或者从Release页面下载发布版本。其中Release页的crow_all.h
就是只有单个头文件的版本,依赖Boost.Asio,而我们要使用的是在源码根目录下的include
子目录,其中包括了corw.h
以及crow
文件夹就是我们要使用的。
1.2.2 下载Asio
Asio的官网是:http://think-async.com/Asio/,其发布版本放在了sourceforge:https://sourceforge.net/projects/asio/files/asio/,找版本大于1.10.9的下载即可。
下载之后也是只有一个include
目录,目录下包含了asio.hpp
和asio
文件夹。
1.3 配置开发环境
如果我们之后想基于Crow开发Http和Websocket服务器,不管是使用CMake、Visual Studio等方式管理项目,那么只需要将1.2节中下载的Crow和Asio添加到项目的包含目录中即可,如果要使用Http Compression或者Https则自行在项目中配置和链接Zlib和OpenSSL。
比如说如果我们在Windows项目上使用Visual Studio进行Crow项目的开发,那么只需要右键项目属性 - C/C++ - 常规 - 附加包含目录中添加Crow和Asio的路径即可,如下图所示。
1.4 测试代码
项目开发环境配置完成之后,我们可以使用以下代码进行测试
#include "crow.h"
int main()
{
crow::SimpleApp app; //define your crow application
//define your endpoint at the root directory
CROW_ROUTE(app, "/")([](){
return "Hello world";
});
//set the port, set the app to run on multiple threads, and run the app
app.port(18080).multithreaded().run();
}
编译运行,然后在浏览器中打开http://localhost:18080 即可在页面看到Hello World。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – Web服务器框架Crow开发环境配置教程
原文链接:https://www.stubbornhuang.com/2706/
发布于:2023年06月27日 16:22:36
修改于:2023年06月27日 16:23:35
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52