前提

安装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

crow运行结果

目录结构

(base) ➜  crowTest tree . -L 1
.
├── build
├── CMakeLists.txt
└── main.cpp

1 directory, 2 files

报错

has no member named ‘get_io_service’

现象:

image-crow-error1.png

问题:boost版本较新,而crow已经几年不更新了,导致api不兼容

解决方案:修改crow源码,如下图:

image-crow-error2

参考:【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})

参考:CMake undefined reference to `pthread_create’ - 简书

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Volantis 作为主题,总访问量为
载入天数...载入时分秒...
冀ICP备20001334号