官网:https://crowcpp.org/master/getting_started/setup/linux/
这里说一下在构建crow时的注意事项:
主要难点是crow和asio库的适配,我喜欢使用独立的asio库,而非boost中的,所以自己在github上拉取了asio库,由于asio库是仅头文件库,所以不需要编译即可使用。
注意asio库的路径修改,我的asio库是直接放在crow项目目录下的。
在crow的CMakeLists.txt中加入这个独立asio库的头文件路径,具体如下:
if(CROW_USE_BOOST)
if(POLICY CMP0167)
# Use Boost CMake module from Boost instead of the one from CMake
cmake_policy(SET CMP0167 NEW)
endif()
find_package(Boost 1.64 COMPONENTS system date_time REQUIRED)
target_link_libraries(Crow
INTERFACE
Boost::boost Boost::system Boost::date_time
)
target_compile_definitions(Crow INTERFACE CROW_USE_BOOST)
else()
target_include_directories(Crow
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/asio/asio/include>
$<INSTALL_INTERFACE:include>
# find_package(asio REQUIRED)
# target_link_libraries(Crow
# INTERFACE
# asio::asio
)
endif()
注释掉的地方是官方原有的,这里的asio库是仅头文件的,所以不需要链接库,提供头文件路径即可。
第二处要修改的地方是install。由于在使用make install时,如果不把asio也install过去,会导致build没有问题,但在正常编译自己的项目时,发生找不到asio库的问题,所以CMakeLists.txt加入如下:
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/asio/asio/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
把CMakeLists.txt修改后,按照官方正常编译即可。