cinatra简易入门教程
Posted zx-admin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cinatra简易入门教程相关的知识,希望对你有一定的参考价值。
2020年6月10日17:19:15
vs 2019 boost 1.71
github :https://github.com/qicosmos/cinatra
注意:本文是中文版本的vs
1,新建空白c++ windows 项目
文件->新建->项目
选择语言 c++,空项目
2,下载源代码,吧源代码加入到vs项目里面
去github上下载一下源代码,核心的只保留 example 和include目录到项目目录
项目目录点击项目右键,在文件资源管理器中打开文件夹,
在解决方案资源管理器上有一排小logo,点击 “显示所有文件夹”选中状态,你会发现你复制进去的代码
但是文件是红色的,点击文件和文件夹 右键 "包含在项目中",然后图标的颜色就恢复正常了
3,添加boost,设置语言标准 std:c++ 17,附加boost到项目里面去
怎么安装boost,https://www.cnblogs.com/zx-admin/p/11792567.html
右击项目->属性->C/C++->语言->C++ 语言标准
选择iso c++ 17
附加目录
先编译好编译boost
项目——>属性——>选择VC++目录,在包含目录 和 库目录添加以上2个路径
包含目录加上 上 D:oost_1_71_0
库目录加上 D:oost_1_71_0stagelib
4,解决运行相关错误
错误1:This function or variable may be unsafe
_CRT_SECURE_NO_WARNINGS
参考:https://jingyan.baidu.com/article/49711c616b8a1ffa441b7cdc.html
错误2:C4996‘std::codecvt_utf8<wchar_t,1114111,(std::codecvt_mode)0>‘:
在url_encode_decode.hpp上加入#pragma warning(disable:4996),抑制一下警告就ok了
5,相关说明
测试demo example 里面的main.cpp
#include <iostream> #include "../include/cinatra.hpp" using namespace cinatra; int main() { http_server server(std::thread::hardware_concurrency()); bool r = server.listen("0.0.0.0", "8090"); if (!r) { //LOG_INFO << "listen failed"; return -1; } //server.on_connection([](auto conn) { return true; }); server.set_http_handler<GET, POST>("/", [](request& req, response& res) mutable { res.set_status_and_content(status_type::ok, "hello world"); //res.set_status_and_content(status_type::ok, std::move(str)); }); server.set_http_handler<GET>("/plaintext", [](request& req, response& res) { //res.set_status_and_content<status_type::ok, res_content_type::string>("Hello, World!"); res.set_status_and_content(status_type::ok, "Hello, World!", req_content_type::string); }); server.run(); return 0; }
运行成功之后,访问
127.0.0.1:8090 就ok了
以上是关于cinatra简易入门教程的主要内容,如果未能解决你的问题,请参考以下文章