ubuntu18.04 安装sophus和pangolin库的问题

安装Eigen库的问题
Ubuntu14.04 :By not providing “FindEigen3.cmake” in CMAKE_MODULE_PATH
解决办法:
1、找到一个FindEigen3.cmake文件,直接在电脑里面搜索。一般ceres,pcl里面都有
2、复制到自己这个的工程下
3、在工程的CMakeLists.txt里面。添加这句话:
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})

参考:
https://blog.csdn.net/handsome_for_kill/article/details/53288771

安装sophus存在的问题:
1、CMakeFiles/Sophus.dir/build.make:65: recipe for target ‘CMakeFiles/Sophus.dir/sophus/so2.cpp.o’ failed
make[2]: *** [CMakeFiles/Sophus.dir/sophus/so2.cpp.o] Error 1
make[2]: Leaving directory ‘/home/drew/svo/workspace/Sophus/build’
CMakeFiles/Makefile2:107: recipe for target ‘CMakeFiles/Sophus.dir/all’ failed
make[1]: *** [CMakeFiles/Sophus.dir/all] Error 2
解决办法:

修改Sophus下的so2.cpp文件
将下面这个修改一下:

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

修改为:

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

2、libsophus.so没有链接上
出现:undefined reference to `Sophus::SO3::log() const’
解决办法:手动链接
为使用 sophus,您需要使用find_package命令找到它
find_package( sophus REQUIRED )
set(Sophus_LIBRARIES set(Sophus_LIBRARIES /usr/local/lib/libSophus.so) )//改成自己的路径,我的在这里
include_directories("/usr/include/eigen3")
include_directories( ${Sophus_INCLUDE_DIRS} )

安装pangolin出现的问题:
1、…
In file included from /home/micoarm/Pangolin/src/video/video_output.cpp:33:0:
/home/micoarm/Pangolin/include/pangolin/video/drivers/ffmpeg.h:94:5: error: ‘PixelFormat’ does not name a type
PixelFormat fmtout;

解决办法:
ffmpeg,openni 有问题,注释/src/Cmakelist中的一些代码
注释部分代码:

#find_package(FFMPEG QUIET)
#if(BUILD_PANGOLIN_VIDEO AND FFMPEG_FOUND)
#  set(HAVE_FFMPEG 1)
# list(APPEND INTERNAL_INC  ${FFMPEG_INCLUDE_DIRS} )
#  list(APPEND LINK_LIBS ${FFMPEG_LIBRARIES} )
#  list(APPEND HEADERS ${INCDIR}/video/drivers/ffmpeg.h)
# list(APPEND SOURCES video/drivers/ffmpeg.cpp)
#  message(STATUS "ffmpeg Found and Enabled")
#endif()

#find_package(OpenNI QUIET)
#if(BUILD_PANGOLIN_VIDEO AND OPENNI_FOUND)
#  set(HAVE_OPENNI 1)
#  list(APPEND INTERNAL_INC  ${OPENNI_INCLUDE_DIRS} )
#  list(APPEND LINK_LIBS ${OPENNI_LIBRARIES} )
#  list(APPEND HEADERS ${INCDIR}/video/drivers/openni.h )
#  list(APPEND SOURCES video/drivers/openni.cpp)
#  message(STATUS "OpenNI Found and Enabled")
#endif()

#find_package(OpenNI2 QUIET)
#if(BUILD_PANGOLIN_VIDEO AND OPENNI2_FOUND)
#  set(HAVE_OPENNI2 1)
#  if(_LINUX_)
#    add_definitions(-Dlinux=1)
#  endif()
#  list(APPEND INTERNAL_INC  ${OPENNI2_INCLUDE_DIRS} )
# list(APPEND LINK_LIBS ${OPENNI2_LIBRARIES} )
#  list(APPEND HEADERS ${INCDIR}/video/drivers/openni2.h )
#  list(APPEND SOURCES video/drivers/openni2.cpp)
#  message(STATUS "OpenNI2 Found and Enabled")
#endif()

详见https://blog.csdn.net/limhsysu/article/details/84959736

使用glog出现的问题
undefined reference to ‘google::FlagRegisterer::FlagRegisterer(char const*, char const*, char const*, bool*, bool*)’

解决方法(参考:https://blog.csdn.net/u012348774/article/details/80558533)
在链接那里,后面加入那两个文件

如果是使用CMake文件,记的链接gflags库。
下边给出一个CMakeLists.txt的示例

cmake_minimum_required(VERSION 2.9)
project(test_glog)

add_executable(test_glog main.cpp)
target_link_libraries(test_glog libgflags.a libglog.a)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值