1. opencv
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
2. pcl
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
add_definitions(${PCL_DEFINITIONS})
target_link_libraries(${PROJECT_NAME} ${PCL_LIBRARIES})
3. 添加当前目录中的所有文件
AUX_SOURCE_DIRECTORY(. DIR_HELLO_SRCS)
ADD_LIBRARY(hello STATIC ${DIR_HELLO_SRCS})
4. install怎么写(以ros为例)
# Detection是编译生成的库或可执行文件
install(TARGETS Detection
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
# launch models plugins是配置文件路径
install(DIRECTORY launch models plugins
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
# include/${PROJECT_NAME}/ 是头文件路径
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)
5. 设置生成路径
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR})
6.判断平台架构
if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
set(ARCH_DIR x86)
else()
set(ARCH_DIR arm)
endif()