fatal error: sophus/se3.h: 没有那个文件或目录

  • 0.引言
  • 1.原因
  • 2.非模板类sophus
  • 3.模板类sophus
  • 4.多版本安装

0.引言

sophus已经安装,但是编译代码报错:fatal error: sophus/se3.h: 没有那个文件或目录

1.原因

sophus版本问题。老版本sophus是非模板类的Sophus。最新sophus为模板类的Sophus,代码会有点变化。

2.非模板类sophus

git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff  #版本回溯
mkdir build && cd build && cmake .. && sudo make install

报错:

***/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignmentunit_complex_.real() = 1.;^~
***/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignmentunit_complex_.imag() = 0.;

报错解决参考,打开 so2.cpp 修改构造函数:

//unit_complex_.real() = 1.;
//unit_complex_.imag() = 0.;
unit_complex_.real(1.);
unit_complex_.imag(0.);

安装结果:

-- Install configuration: "Release"
-- Up-to-date: /usr/local/include/sophus
-- Installing: /usr/local/include/sophus/se3.h
-- Installing: /usr/local/include/sophus/scso3.h
-- Installing: /usr/local/include/sophus/se2.h
-- Installing: /usr/local/include/sophus/so2.h
-- Installing: /usr/local/include/sophus/sim3.h
-- Installing: /usr/local/include/sophus/so3.h
-- Installing: /usr/local/lib/libSophus.so

非模板类的头文件为**.h

3.模板类sophus

依赖 fmt 库,参考.

git clone https://github.com/strasdat/Sophus.git
cd Sophus
mkdir build && cd build && cmake .. && sudo make install

安装结果:

-- Install configuration: "Release"
-- Up-to-date: /usr/local/share/sophus/cmake/SophusTargets.cmake
-- Up-to-date: /usr/local/share/sophus/cmake/SophusConfig.cmake
-- Up-to-date: /usr/local/share/sophus/cmake/SophusConfigVersion.cmake
-- Up-to-date: /usr/local/include/sophus/average.hpp
-- Up-to-date: /usr/local/include/sophus/common.hpp
-- Up-to-date: /usr/local/include/sophus/geometry.hpp
-- Up-to-date: /usr/local/include/sophus/interpolate.hpp
-- Up-to-date: /usr/local/include/sophus/interpolate_details.hpp
-- Up-to-date: /usr/local/include/sophus/num_diff.hpp
-- Up-to-date: /usr/local/include/sophus/rotation_matrix.hpp
-- Up-to-date: /usr/local/include/sophus/rxso2.hpp
-- Up-to-date: /usr/local/include/sophus/rxso3.hpp
-- Up-to-date: /usr/local/include/sophus/se2.hpp
-- Up-to-date: /usr/local/include/sophus/se3.hpp
-- Up-to-date: /usr/local/include/sophus/sim2.hpp
-- Up-to-date: /usr/local/include/sophus/sim3.hpp
-- Up-to-date: /usr/local/include/sophus/sim_details.hpp
-- Up-to-date: /usr/local/include/sophus/so2.hpp
-- Up-to-date: /usr/local/include/sophus/so3.hpp
-- Up-to-date: /usr/local/include/sophus/types.hpp
-- Up-to-date: /usr/local/include/sophus/velocities.hpp
-- Up-to-date: /usr/local/include/sophus/formatstring.hpp

模板类的头文件为**.hpp

4.多版本安装

以先安装费模板类为例,第一次安装直接普通安装即可,模板类安装时指定文件夹,互不影响。

mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local/sophus-template ..
make -j8
sudo make install

版本切换:

# cmake version
cmake_minimum_required(VERSION 2.8)
# project name
project(test)
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})
...
target_link_libraries(test
${Sophus_LIBS}
)##  使用模板类sophus
cmake_minimum_required(VERSION 2.8)
set(Sophus_DIR "/usr/local/sophus-template/share/sophus/")
#或
#set(Sophus_INCLUDE_DIR "/usr/local/sophus-template/include")
##set(Sophus_LIBS )
# project name
project(test)
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})
...
target_link_libraries(test
${Sophus_LIBS}
)

fatal error: sophus/se3.h: 没有那个文件或目录相关推荐

  1. 如何解决编译linux内核(解决声卡问题),遭遇fatal error: linux/limits.h: 没有那个文件或目录

    如何解决编译linux内核(解决声卡问题),遭遇fatal error: linux/limits.h: 没有那个文件或目录 参考文章: (1)如何解决编译linux内核(解决声卡问题),遭遇fata ...

  2. 编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录

    编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录 其实numpy已经是安装的,anaconda2里面有,python中import num ...

  3. fatal error: alsa/asoundlib.h: 没有那个文件或目录错误解决办法

    在编译ffmpeg4.2代码的时候,出现以下编译错误: libavdevice/alsa_enc.c:40:10: fatal error: alsa/asoundlib.h: 没有那个文件或目录 解 ...

  4. fatal error: openssl/evp.h: 没有那个文件或目录

    在陆佳华<嵌入式系统软硬件协同设计实战指南 第2版>一书的第13章节 编译U-boot时会遇到2个错误.原因很简单,就从一开始的错误提示着手: fatal error: openssl/e ...

  5. 编译R3LIVE报错: fatal error: livox_ros_driver/CustomMsg.h: 没有那个文件或目录 4 | #include <livox_ros_driver/

    安装编译了livox_ros_driver和livox_SDK,在编译R3LIVE算法时,遇到报错 fatal error: livox_ros_driver/CustomMsg.h: 没有那个文件或 ...

  6. fatal error: GLES3/gl31.h: 没有那个文件或目录

    环境:需求是armV8.2环境下使用qt库中qgl.qwidget等控件,x86下环境正常使用,在arm环境报错:In file included from /usr/include/aarch64- ...

  7. fatal error: GL/glew.h: 没有那个文件或目录

    搜索libglew的版本 #apt-cache search glew libglew-dbg - OpenGL Extension Wrangler (debugging symbols) libg ...

  8. 解决 fatal error: i2c/smbus.h: 没有那个文件或目录 #include <i2c/smbus.h>

    编译功能包报错 解决方案 sudo apt-get install libi2c-dev

  9. ROS问题解决_fatal error: ros/ros.h: 没有那个文件或目录 #include “ros/ros.h“

    参考:[ROS-解决问题] fatal error: ros/ros.h: 没有那个文件或目录_踏破万里无云的博客-CSDN博客 原因是功能包的CMakelists.text文件里面少了东西,find ...

最新文章

  1. 100多年了,左右大脑的不对称性依然备受关注
  2. linux fuser 命令 查看文件/网络端口 被什么进程占用
  3. HTML+CSS+JS实现 ❤️爱心文字3D旋转动画特效❤️
  4. windows下,‘nmake‘不是内部或外部命令,也不是可运行的程序或批处理文件
  5. java 获取路径_java 获取当前类的路径
  6. 苹果承认使用谷歌云存储 iCloud 数据,但确保无隐私问题
  7. jni开发-GetMethodID与CallObjectMethod的坑
  8. 5g组网sa方式的演进_关于5G的SA(独立组网)和NSA(非独立组网),这篇通俗易懂!
  9. linux十大实用工具,10大好用的Linux实用工具推荐
  10. kettle连接mysql教程_KETTLE初学者使用教程
  11. 基于 Echarts 实现可视化数据大屏展示
  12. 《游戏引擎架构》试读感想
  13. 2.郝斌C语言课程大纲
  14. Uniapp——使用安卓原生插件
  15. 谷歌滤镜软件叫什么_谷歌app爆红的拍照功能:你最像名画中的谁?
  16. dpi和ppi换算_dpi换算(dpi换算网站)
  17. ISIS 防环机制分析
  18. Cannot find JRE ‘1.8‘. You can specify JRE to run maven goals in Settings | Mav
  19. 【Python学习教程】Python编程基础
  20. 【TED】How to get better at the things you care about?

热门文章

  1. 清泉HAL库开发STM32之GPIO
  2. java火焰_java火焰图配置
  3. PAT甲级 1079(C++)
  4. ubuntu下wine的字体调整
  5. 如何将ie9转为ie8
  6. 树莓派linux能干什么,树莓派是什么?能干什么?
  7. GitHub标星15w,如何用Python实现所有算法?
  8. 一些中文自然语言处理工具包
  9. 《蜀汉天下》地图制作之一:英雄制作
  10. 从Excel 到微服务