一、概述
cmake 是C++一个很重要的编译和项目管理工具,我们在git 上以及常见的项目现在多数都是用cmake 管理的,那么我们今天就做一个同时有Opencv和CGAL 以及PCL 的项目。
二、项目管理
重点是CMakeList.txt
1、CMakeList.txt
cmake_minimum_required(VERSION 3.2 FATAL_ERROR) #Cmake的最低版本
project(Hello)
# 寻找PCL库
find_package(PCL 1.12 REQUIRED)
# 包含PCL头文件目录
include_directories(${PCL_INCLUDE_DIRS})
# 寻找OpenCV库
find_package(OpenCV 4.4 REQUIRED)
# 包含OpenCV头文件目录
include_directories(${OpenCV_INCLUDE_DIRS})
# 添加cgal库
find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
message("CGAL_USE_FILE = ${CGAL_USE_FILE}")
# 添加可执行文件或库
file(GLOB SRC_LIST "${PROJECT_SOURCE_DIR}/*.cpp")
file(GLOB HEADER_LIST "${PROJECT_SOURCE_DIR}/*.h*")
message("SRC_LIST:" ${SRC_LIST})
message("SRC_LIST:" ${HEADER_LIST})
# 生成dll的名字
add_library(HelloDll SHARED ${SRC_LIST} ${HEADER_LIST})
# 链接OpenCV库 PCL库
target_link_libraries(HelloDll
${OpenCV_LIBS}
${PCL_LIBRARIES}
)
// 测试的项目
add_executable(${PROJECT_NAME}_test ./main.cpp)
target_link_libraries(${PROJECT_NAME}_test
${PCL_LIBS}
${PROJECT_NAME}
)
2、编译
编译后的