按照《视觉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)