拿Sophus库为例:
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})
target_link_libraries(useSophus ${Sophus_LIBRARIES})
我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实
find_package主要是找到.cmake文件,然后这些变量在.cmake 里面定义了,我们看Sophus/SophusConfig.cmake:
# Sophus source dir
set( Sophus_SOURCE_DIR "/home/xxx/slamcode/ch4/Sophus")
################################################################################
# Sophus build dir
set( Sophus_DIR "/home/xxx/slamcode/ch4/Sophus")
################################################################################
set( Sophus_INCLUDE_DIR "/home/xxx/slamcode/ch4/Sophus;/usr/include/eigen3" )
set( Sophus_INCLUDE_DIRS "/home/xxx/slamcode/ch4/Sophus;/usr/include/eigen3" )
set( Sophus_LIBRARIES "/home/xxx/slamcode/ch4/Sophus/libSophus.so" )
set( Sophus_LIBRARY "/home/xxx/slamcode/ch4/Sophus/libSophus.so" )
set( Sophus_LIBRARY_DIR "/home/xxx/slamcode/ch4/Sophus" )
set( Sophus_LIBRARY_DIRS "/home/xxx/slamcode/ch4/Sophus" )
然后就知道那些变量可以用了吧