Slam十四讲ch4

sophus库安装好后 通过:locate sophus | grep cmake寻找配置文件

但新文件系统未更新,手动更新数据库 命令:sudo updatedb

rm -rf  *删除当前目录下所有文件及目录

find_package返回两个变量:头文件路径XXX_INCLUDE_DIRS,库文件路径XXX_LIBRARIES

例如Eigen3Config.cmake里存有EIGEN3_INCLUDE_DIRS,Eigen库全部由头文件组成,因此不需要库文件路径

target_link_libraries(target items) item可以是 库文件名hello/库文件路径XXX_LIBRARIES/traget (Sophus::Sophus)

SophusConfig.cmake中不包含这些信息,可以使用target

具体在SophusTargets.cmake中给出 :# Create imported target Sophus::Sophus

target_link_libraries中给出target后不用再写incude_directories

主Cmake文件里add_subdirectory(example)指出子文件夹

同时子文件夹中要有子Cmakelists,不需要再写project name

add_subdirectory中有三个参数:source_dir子文件夹绝对/相对路径,binary_dir二进制文件生成路径,EXCLUDE_FROM_ALL不进行编译

但是版本不对只能用${Sophus_LIBRARIES}

解决方法:

find_package(FMT REQUIRED)

include_directories(${FMT_INCLUDE_DIRS})

target_link_libraries(useSophus fmt::fmt)

option(USE_UBUNTU_20 "Set to ON if you are using Ubuntu 20.04" OFF)

if(USE_UBUNTU_20)

message("You are using Ubuntu 20.04, fmt::fmt will be linked")

find_package(fmt REQUIRED)

set(FMT_LIBRARIES fmt::fmt)

endif()

option设置USE_UBUNTU_20变量默认值用来适配不同版本

可通过cmake .. -DUSE_UBUNTU_20=ON修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值