前提
安装Boost,可参考:linux下boost库的安装及库的介绍 - 苦涩的茶 - 博客园
下载
cd /root/Projects/GithubProjects
wget https://github.com/ipkn/crow.git --depth=1
构建项目
项目初始化
cd /root/Projects/myProjects/cppProjects
mkdir crowTest
编写项目源码
#include "crow.h"
int main()
{
crow::SimpleApp app;
CROW_ROUTE(app, "/")([](){
return "Hello world";
});
app.port(18080).multithreaded().run();
}
设置CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(crowTest)
set(CMAKE_CXX_STANDARD 14)
# 引入crow库
include_directories(/root/Projects/GithubProjects/crow/include/)
# 设置编译参数,否则会报错
find_package(Threads)
add_executable(crowTest main.cpp)
target_link_libraries(crowTest ${CMAKE_THREAD_LIBS_INIT})
编译项目
cd /root/Projects/myProjects/cppProjects/crowTest
mkdir build && cd build
cmake ..
make
运行项目
cd /root/Projects/myProjects/cppProjects/crowTest/build
./crowTest
目录结构
(base) ➜ crowTest tree . -L 1
.
├── build
├── CMakeLists.txt
└── main.cpp
1 directory, 2 files
报错
has no member named ‘get_io_service’
现象:
问题:boost版本较新,而crow已经几年不更新了,导致api不兼容
解决方案:修改crow源码,如下图:
参考:【C++】解决no member named ‘get_io_service’_horizon_ys的博客-CSDN博客_get_io_service
undefined reference to ‘pthread_create’
现象:
问题:pthread库不是标准linux库
解决方案:修改CMakeLists.txt文件
# 设置编译参数,否则会报错
find_package(Threads)
add_executable(crowTest main.cpp)
target_link_libraries(crowTest ${CMAKE_THREAD_LIBS_INIT})