Eigen、Qt、OpenCV、PCL、Yaml-cpp 的CMakeLists.txt
1、Eigen
a): find_package(Eigen3 3.3.4 REQUIRED)
b): 头文件
include_directories(${EIGEN3_INCLUDE_DIR})
#include <Eigen/Dense>
2、OpenCV
a): find_package(OpenCV REQUIRED)
b): 头文件
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
c): 库
target_link_libraries(xxx ${OpenCV_LIBS})
3、PCL
a): find_package(PCL REQUIRED)
b): 头文件
include_directories(${PCL_INCLUDE_DIRS})
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
c): 库
link_directories(${PCL_LIBRARY_DIRS})
target_link_libraries(xxx ${PCL_LIBRARIES})
4、Yaml-cpp
a): find_package(Yaml-cpp REQUIRED)
b): 头文件
#include <yaml-cpp/yaml.h>
c): 库
target_link_libraries(xxx ${YAML_CPP_LIBRARIES})
5、Qt5
a):
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
b): 选项
set(CMAKE_CXX_FLAGS -no-pie) 或add_link_options(-no-pie) // C++17
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(QT_USE_QTMAIN TRUE)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
add_definitions(-DQT_NO_KEYWORDS)
qt5_add_resources(SRC_FILES icons.qrc)
qt5_wrap_ui(UI_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/mainwindow.ui)
c): 头文件
include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS})
d): 库
target_link_libraries(xxx ${QT_LIBRARIES} Qt5::Widgets)
6、ROS1
a):
find_package(catkin REQUIRED COMPONENTS
cv_bridge
roscpp
std_msgs
rosbag
sensor_msgs
grid_map_core
grid_map_msgs
grid_map_ros
image_transport
)
b): 头文件
include_directories(${roscpp_INCLUDE_DIRS} ${std_msgs_INCLUDE_DIRS})
c): 库
target_link_libraries(xxx
${roscpp_LIBRARIES}
${roscpp_LIBRARIES}
${std_msgs_LIBRARIES}
${rosbag_LIBRARIES}
${catkin_LIBRARIES}
${message_filters_LIBRARIES}
)
评论已关闭