如果你的ubuntu系统版本较高,例如Ubuntu20.04,可能在利用原始的g2o进行编译时会提示找不到:

-- Could NOT find QGLVIEWER (missing: QGLVIEWER_LIBRARY)

解决方法1:
安装必要的库:

sudo apt-get install libqglviewer-qt4-dev
sudo apt-get install libqt4-dev
sudo apt-get install libsuitesparse-dev

这样就可以解决了;

解决方法2:(本人遇到的情况)
如果你配置的不是qt4,而是qt5,这个时候其实也是可以编译的;
首先安装qt5的libqglviewer;

sudo apt-get install libqglviewer-dev-qt5

接着 修改g2o/cmake_modules里面的 FindQGLViewer.cmake文件,让cmake能够找到它:

所以在find_pathfind_library里面添加两个:QGLViewer-qt5

可以用下列全部替换(已经修改好):

# Need to find both Qt{4,5} and QGLViewer if the QQL support is to be built
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtXml QtOpenGL QtGui)
IF(NOT Qt4_FOUND)FIND_PACKAGE(Qt5 QUIET COMPONENTS Core Xml OpenGL Gui Widgets)IF(NOT Qt4_FOUND AND NOT Qt5_FOUND)MESSAGE("Qt{4,5} not found. Install it and set Qt{4,5}_DIR accordingly")IF (WIN32)MESSAGE("  In Windows, Qt5_DIR should be something like C:/Qt/5.4/msvc2013_64_opengl/lib/cmake/Qt5")ENDIF()ENDIF()
ENDIF()FIND_PATH(QGLVIEWER_INCLUDE_DIR qglviewer.h/usr/include/QGLViewer/opt/local/include/QGLViewer/usr/local/include/QGLViewer/sw/include/QGLViewerENV QGLVIEWERROOT)find_library(QGLVIEWER_LIBRARY_RELEASENAMES qglviewer-qt4 qglviewer QGLViewer QGLViewer2 QGLViewer-qt5PATHS /usr/lib/usr/local/lib/opt/local/lib/sw/libENV QGLVIEWERROOTENV LD_LIBRARY_PATHENV LIBRARY_PATHPATH_SUFFIXES QGLViewer QGLViewer/release
)
find_library(QGLVIEWER_LIBRARY_DEBUGNAMES dqglviewer dQGLViewer dQGLViewer2 QGLViewerd2 QGLViewer-qt5PATHS /usr/lib/usr/local/lib/opt/local/lib/sw/libENV QGLVIEWERROOTENV LD_LIBRARY_PATHENV LIBRARY_PATHPATH_SUFFIXES QGLViewer QGLViewer/release
)if(QGLVIEWER_LIBRARY_RELEASE)if(QGLVIEWER_LIBRARY_DEBUG)set(QGLVIEWER_LIBRARY optimized ${QGLVIEWER_LIBRARY_RELEASE} debug ${QGLVIEWER_LIBRARY_DEBUG})else()set(QGLVIEWER_LIBRARY ${QGLVIEWER_LIBRARY_RELEASE})endif()
endif()include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QGLVIEWER DEFAULT_MSGQGLVIEWER_INCLUDE_DIR QGLVIEWER_LIBRARY)

继续cmake:
就不会再报错:

-- Found QGLVIEWER: /usr/include/QGLViewer

之后完成编译;

另外也有可能在运行的时候报错,提示找不到libg2o_viewer.so,这个时候只需要在/etc/ld.so.conf文件中添加/usr/local/lib即可:
之后运行:(必要步骤)

sudo ldconfig

即可;

g2o_viewer运行结果:

解决g2o无法编译出g2o_viewer的问题相关推荐

  1. VS2005+WINDDK+Driver Studio 3.2编译出第一个测试驱动程序

    哎,我都快要成为转帖男了,不过有用的话我觉得还是有必要转一下的.拿来和大家一起分享也是一种快乐! 先说明引自:http://blog.csdn.net/zzqccc/archive/2009/05/0 ...

  2. 解决Fedora 自己编译的内核不能运行Virtualbox的问题。

    Fedora作为linux发行版的地沟油...有时候是比较坑爹的. Fedora有1个很出名特点,就是更新很快很激进, 本来这个是优点啦, 但是它连内核也更新的超快, 基本上2周更新一次内核, 后果就 ...

  3. 一套代码编译出ios和android,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...

    Hippy 跨端开发框架 介绍 Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS.Android 和 Web).Hippy 的设计是面向传统 Web 开 ...

  4. IDEA解决Maven项目编译后classes文件中没有.xml或.properties问题

    IDEA解决Maven项目编译后classes文件中没有.xml或.properties问题 方式一.在 pom.xml 中添加下面的代码 <build><!--解决Maven项目编 ...

  5. FFmpeg源码编译出支持音频AAC编码以及H264,H265编码的库

    先决条件: 需要安装msys2(是一个在windows中模拟linux操作系统的软件) 由于在linux中编译ffmpeg比较简单, 所以利用一下msys2, 直接去官网下载安装即可 需要安装visu ...

  6. 解决AndroidStudio 控制台编译输出中文乱码,黑方块+问号之类的

    [100%有效]解决AndroidStudio 控制台编译输出中文乱码(黑色方框问号),亲测解决!(转载)_Pdx_666的博客-CSDN博客背景在AndroidStudio中新建了一个Java Mo ...

  7. 给出以下程序,制作makefile文件,编译出可执行文件

    给出以下程序,制作makefile文件,编译出可执行文件 方法一(通过静态库方式): 方法二(直接): main.c /* main.c */ #include "mylinux1.h&qu ...

  8. 经验总结---编译出可以在Android上执行的可执行文件

    作为一手包揽Ubuntu和Android设备的初级开发者,我不止一次地尝试把这两个同是用Linux内核的操作系统统一起来--让Ubuntu下的可执行程序能够在Android设备上运行.于是我不止一次地 ...

  9. 完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题

    完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题 参考文章: (1)完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题 (2)https://www.cnblogs.com/qhanti ...

  10. java通过对.class文件字节码加密,不被轻易反编译出源代码,分析及其实现。

    java通过对字节码加密,不被轻易反编译出源代码. 分析: JVM运行java文件是通过加载.class文件实现程序运行的,而且这个过程被我们称为类加载机制. 执行加载这个动作的是类加载器(java. ...

最新文章

  1. 2022-2028年中国BOPET薄膜行业市场全景调查及投资前景预测报告
  2. 南阳833--取石子(七)
  3. python怎么编辑文件夹_python创建修改文件
  4. 跨链Cosmos(7)普通交易流程
  5. hadoop可以解决什么问题_快速解决皮带机轴磨损问题可以这样做
  6. 8086地址传送指令LEA
  7. CodeForces 828E DNA Evolution(树状数组)题解
  8. 【frida实战】“一行”代码教你获取WeGame平台中所有的lua脚本
  9. jeecms oracle v5_jeecms二次开发总结
  10. linux虚拟机克隆mac地址冲突,虚拟机下linux迁移造成MAC地址异常处理办法(示例代码)...
  11. 七大江河水系--海河
  12. 移动web适配的方式
  13. iOS设备 历代 机型对照表
  14. LateX使用笔记(持续更新)
  15. Tuscany的一些概念
  16. [USACO12MAR]花盆Flowerpot(二分答案+单调队列)
  17. 自动化脚本Cron工具(MAC和Linux系统)
  18. 中国真空退火炉行业市场供需与战略研究报告
  19. .net4.0注册到IIS ,重新注册IIS ,iis注册
  20. 【91数据恢复】服务器感染了.halo勒索病毒,如何确保数据100%恢复?

热门文章

  1. linux查看挂载内存卡,Ubuntu Linux 挂载移动硬盘、U盘、SD卡(对于新手)
  2. python 100 days github_GitHub - Andyhe2019/Python-100-Days: Python - 100天从新手到大师
  3. SpringBoot学习---yaml配置
  4. MyBatis的环境搭建(图文)
  5. showModalDialog的用法
  6. Linux中命令行终端切换工具screen
  7. 《软件定义网络:基于OpenFlow的SDN》一一3.4 本章总结
  8. uva 1637 Double Patience
  9. Android IOS WebRTC 音视频开发总结(六三)-- 2016国内IM云服务行业分析
  10. 21-nginx单机1W并发优化