Sophous:编译时,报错 “/usr/local/include/sophus/common.hpp:36:10: fatal error: fmt/core.h: 没有那个文件或目录”

在遵循《视觉SLAM十四讲》配置Sophous时遇到找不到fmt/core.h头文件的错误,原因是新版Sophous需要fmt库。通过git clone、cmake和make安装fmt后,虽然解决了头文件缺失问题,但在编译时又出现静态断言失败的bug。为解决此bug,在CMakeLists.txt中添加链接fmt库的指令即可正常编译。
摘要由CSDN通过智能技术生成

按照《视觉SLAM十四讲》配置Sophous出现“/usr/local/include/sophus/common.hpp:36:10: fatal error: fmt/core.h: 没有那个文件或目录”

其原因显然:缺少fmt/core.h头文件。
之所以出现该问题是因为原书使用Sophous库时,仅仅需要EIgen一个依赖,而如今版本的Sophous库还需要fmt依赖。
因此,要解决此问题安装该库即可:

git clone https://github.com/fmtlib/fmt.git
cd fmt
mkdir build
cd build
cmake ..
make
sudo make install

然而在安装好fmt之后,虽然解决了寻找不到fmt的问题,但编译时又出现了新的bug:
/usr/local/include/fmt/core.h:1711:3:
error: static assertion failed: Cannot format an argument.
To make type T formattable provide a formatter specialization:
https://fmt.dev/latest/api.html#udt static_assert(

出现这个bug的原因,我暂时也没想通,但是加上cmakelist中连接库后,即可解决:

target_link_libraries(useSophus Sophus::Sophus)
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值