Cmakelist常用库模板

Catalogue
  1. 1. cmake 学习资料
  2. 2. 1 项目基本内容
  3. 3. CUDA
  4. 4. ZED2
  5. 5. Boost
  6. 6. OpenCV4.X
  7. 7. Redis++
  8. 8. Protobuf3
  9. 9. 参考资料

| 本章内容基于ubuntu20.04 CMAKE 3.16 构建C++项目

cmake 学习资料

cmake 最佳实践

1 项目基本内容

cmake最低版本需求

1
2
cmake_minimum_required(VERSION 3.10)
project(Project_Name)

设置C++语言版本

1
set(CMAKE_CXX_STANDARD 17 )

设置项目名称

1
project(test)

常见cmake第三方库链接

1
2
# 构建项目名称
set(TARGET_NAME test)

CUDA

1
2
find_package(CUDA REQUIRED)
target_include_directories(${TARGET_NAME} PUBLIC ${CUDA_INCLUDE_DIRS})

ZED2

1
2
3
find_package(ZED 3 REQUIRED)
target_include_directories(${TARGET_NAME} PUBLIC ${ZED_INCLUDE_DIRS})
target_link_directories(${TARGET_NAME} PUBLIC ${ZED_LIBRARY_DIR})

Boost

1
2
3
find_package(Boost  REQUIRED)
target_include_directories(${TARGET_NAME} PUBLIC ${Boost_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} PUBLIC ${Boost_LIBRARIES})

OpenCV4.X

1
2
3
find_package(OpenCV REQUIRED)
target_include_directories(${TARGET_NAME} PUBLIC ${OpenCV_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} PUBLIC ${OpenCV_LIBRARIES})

Redis++

1
2
3
4
find_path(REDIS_INCLUDE_DIRS "sw")
find_library(REDIS_LIBRARIES "redis++")
target_include_directories(${TARGET_NAME} PUBLIC ${REDIS_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} PUBLIC ${REDIS_LIBRARIES})

Protobuf3

1
2
3
4
##protobuf
find_package(Protobuf REQUIRED)
target_include_directories(${TARGET_NAME} PUBLIC ${PROTOBUF_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} PUBLIC ${PROTOBUF_LIBRARIES})

参考资料