安装过程遇到一些问题,做一个记录方便自己后续查看
apt-get install libboost-all-dev libhiredis-dev #不清楚是否必要
git clone --recursive https://github.com/luca3m/cpp_redis.git #不加--recursive的话,tacopie目录下没东西
cd cpp_redis
mkdir build
cd build
cmake ..
make
make install
在cmake … 这个步骤出现问题
CMake Error: install(EXPORT "cpp_redis" ...) includes target "cpp_redis" which requires target "tacopie" that is not in any export set.
-- Generating done
CMake Generate step failed. Build files cannot be regenerated correctly.
将cpp_redis/CMakeLists.txt 发给ai,根据ai的回答修改如下:
> #找到install 命令的部分,确保 tacopie 也被包含在导出集中:
> install(TARGETS ${PROJECT_NAME} tacopie EXPORT ${EXPORT_TARGET_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
> install(EXPORT ${EXPORT_TARGET_NAME} DESTINATION
> ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} FILE ${PROJECT_NAME}-targets.cmake)
if (NOT tacopie_library AND NOT USE_CUSTOM_TCP_CLIENT)
# requires CMP0077 set to NEW
set(BUILD_EXAMPLES OFF)
set(BUILD_TESTS OFF)
add_subdirectory(tacopie)
# TODO: add alias library 下面set是额外添加的部分
set(tacopie_library tacopie)
endif ()
之后make步骤出现问题
fatal error: tacopie/tacopie: No such file or directory
###
# includes
###
target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${cpp_redis_includes}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tacopie/includes>
$<INSTALL_INTERFACE:include>)
按上面的找到include部分,添加一条$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tacopie/includes>