一、下载安装
因为Sophus需要依赖fmt库,所以我们要先装fmt库
使用git下载fmt源代码
git clone https://github.com/fmtlib/fmt.git
下载好后进入文件夹,进行编译安装
cd fmt
mkdir build && cd build
cmake ..
make
sudo make install
安装好后我们开始下载Sophus库,使用git下载
git clone https://github.com/strasdat/Sophus.git
同样,进入文件夹编译安装
cd Sophus/
mkdir build
cd build
cmake ..
make
sudo make install
二、遇到的问题
在这里我们可能会遇到几个问题
问题一:安装fmt库时遇到问题error: no matching function for call to ‘fmt::v11::formatter
这是因为版本问题,出现了关于模板推导和类型转换的错误,我们需要去更换一个早期更稳定的版本,我们使用git来切换版本
cd fmt
git checkout 9.1.0
之后再重新进行编译安装
cd fmt
mkdir build && cd build
cmake ..
make
sudo make install
问题二:安装CMake时遇到问题& CMake Error at CMakeLists.txt: CMake 3.24 or higher is required
这说明你的CMake的版本和要求的最低版本出现了冲突,如果我们使用的是Ubuntu20.04,使用sudo apt upgrade的最高版本应该是3.16,还是达不到要求,因此我们要手动下载新版CMake安装,这里千万不要卸载了之后再安装,否则会遇到后序相关库连续的问题
进入CMake的官网
我们下载一个Linux的3.30版本
之后进入下载文件夹,打开终端输入命令
./configure
等待终端运行后,按照提示输入make
make
之后再输入
sudo make install
这样就更新好了cmake
问题三:安装时遇到Eigen的版本出现冲突
这里我们就直接去官网重新下载一个新版的Eigen重新进行解压安装,详情可以看我之前发布的博客
三、使用
同样,在使用时,我们要去找到包的位置,包含头文件,链接库
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})
add_executable(useSophus useSophus.cpp)
target_link_libraries(useSophus Sophus::Sophus)