一,手动设置库路径来调用库
以opencv为例:
set(OpenCV_DIR "/usr/local/opencv341/share/OpenCV")
target_link_libraries(${OpenCV_LIBS})
即可。
二,设置自动寻找库路径
以eigen3为例:
find_package(Eigen3 QUIET)
if(NOT EIGEN3_FOUND)
message(STATUS "Eigen3 is not found!!!!!!!!!!!!!!!!!!!!!!!!!!")
find_package(cmake_modules REQUIRED)
find_package(Eigen REQUIRED)
set(EIGEN3_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
endif()
catkin_package(
INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS}
DEPENDS EIGEN3
)
include_directories(
${EIGEN3_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIRS}/Eigen/src/Core/util
)
三 opencv实例
set(OpenCV_DIR "/usr/local/opencv3.4.2/share/OpenCV")
find_package(OpenCV REQUIRED)
message(${OpenCV_INCLUDE_DIRS})
这样配置之后会自动找到目录中FindEigen3.cmake根据这个cmake来找eigen3并配置那几个地址变量
三,增加编译选项
add_compile_options(-fpermissive)
这里find_package的规则可以参考https://www.cnblogs.com/coderfenghc/archive/2012/07/15/2592758.html