Pangolin 是一个可用于SLAM可视化的openGL库。目前有很多SLAM系统都用它作为可视化的工具。它的编译与安装过程问题不大,依赖也比较少。但最近我在单独使用它的时候,碰到了很奇怪的现象:我单独将HelloPangolin这个example以及它的CMakelists.txt取出来,通过cmake,build的方式去编译,报了一堆错:

In file included from /home/lenovo/Pangolin/include/pangolin/var/var.h:34:0,
from /home/lenovo/Pangolin/include/pangolin/var/varextra.h:31,
from /home/lenovo/Pangolin/include/pangolin/pangolin.h:52,
from /home/lenovo/expangolin/main.cpp:1:
/home/lenovo/Pangolin/include/pangolin/var/varvalue.h: In instantiation of ‘void pangolin::VarValue::Init() [with T = bool]’:
/home/lenovo/Pangolin/include/pangolin/var/varvalue.h:55:14: required from ‘pangolin::VarValue::VarValue(const T&) [with T = bool]’
/home/lenovo/Pangolin/include/pangolin/var/var.h:170:20: required from ‘pangolin::Var::Var(const string&, const T&, bool) [with T = bool; std::string = std::basic_string]’
/home/lenovo/Pangolin/include/pangolin/var/varextra.h:67:52: required from here
/home/lenovo/Pangolin/include/pangolin/var/varvalue.h:99:23: error: ‘class pangolin::VarValue’ has no member named ‘str’
this->str = (VarValueTstd::string*)this;
^
/home/lenovo/Pangolin/include/pangolin/var/varvalue.h:102:23: error: ‘class pangolin::VarValue’ has no member named ‘str’
this->str = str_ptr;

  出现这种错误,意味着Pangolin库的路径是能够被找到的,但通过这个库编译example的时候,出现了问题。这个问题困扰了很久,最终我通过对比ORB-SLAM2中的CMakeLists.txt才发现,需要通过CMake加上C++11 或者C++0x的support,最终编译pangolin的example的CMakeLists.txt 如下:

cmake_minimum_required(VERSION 2.8)
project(HelloPangolin) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3 -march=native ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3 -march=native") # Check C++11 or C++0x support
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_definitions(-DCOMPILEDWITHC11)
message(STATUS "Using flag -std=c++11.")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
add_definitions(-DCOMPILEDWITHC0X)
message(STATUS "Using flag -std=c++0x.")
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif() find_package(Pangolin REQUIRED) include_directories(${Pangolin_INCLUDE_DIRS}) # Build examples
add_executable(test main.cpp)
target_link_libraries(test ${Pangolin_LIBRARIES})

CMakeLists.txt

Pangolin的使用的更多相关文章

  1. HOWTO install Oracle 11g on Ubuntu Linux 12.04 (Precise Pangolin) 64bits

    安装了Ubuntu 12.04 64bit, 想在上面安装Oracle 11gr2,网上找了好多文档都没成功,最后完全参考了MordicusEtCubitus的文章. 成功安装的关键点:install ...

  2. 最近新版本的pangolin出现了点问题,我把可用的旧版本上传到了github

    经测试该版本编译没有问题. 下载地址:https://github.com/zzx2GH/Pangolin.git

  3. ORB_SLAM2之Pangolin的安装与问题处理

    前言 本篇博客中,我们主要介绍了在安装ORB_SLAM2所需的第三方库Pangolin的过程中遇到的一些问题及解决方法. 1.Pangolin是什么? Pangolin是一个用于OpenGL显示/交互 ...

  4. Pangolin学习

    0.1. 资料 0.2. 使用说明 0.3. HelloPangolin 0.4. Plot data with ros 0.1. 资料 泡泡机器人 github example opengl中摄像机 ...

  5. 安装Pangolin

    Pangolin是一个用于OpenGL显示/交互以及视频输出的一个轻量级 快速开发库 一:安装必要的库 1.Glew sudo apt-get install libglew-dev 2.Cmake ...

  6. ubuntu 安装Pangolin 过程

    Pangolin 是一款开源的OPENGL显示库,可以用来视频显示.而且开发容易. 代码我们可以从Github 进行下载:https://github.com/zzx2GH/Pangolin.git ...

  7. ubuntu16.04下安装pangolin

    安装教程,具体可以参考github上pangolin的安装文档 https://github.com/stevenlovegrove/Pangolin 首先要安装pangolin的各种依赖项 Glew ...

  8. Pangolin库的使用

    使用Pangolin画出相机的轨迹(包括朝向). 数据集结构data.csv: #timestamp, p_RS_R_x [m], p_RS_R_y [m], p_RS_R_z [m], q_RS_w ...

  9. 第三方库的安装:Pangolin

    Pangolin: 一款开源的OPENGL显示库,可以用来视频显示.而且开发容易. 代码我们可以从Github 进行下载:https://github.com/stevenlovegrove/Pang ...

随机推荐

  1. 【转】安卓布局:layout_weight的理解

    android:layout_weight详细分析介绍: 布局文件是:<?xml version="1.0" encoding="utf-8"?>& ...

  2. Java编译时出现No enclosing instance of type XXX is accessible.

    今天在编译Java程序的时候出现以下错误: No enclosing instance of type Main is accessible. Must qualify the allocation ...

  3. OmniGraffle-新手指南

    OmniGraffle是一款不错的可视化软件,通过它你可以把你想要展现的数据简介.直观的展现在图.表上,这是我在数据可视化工具这篇随笔中说过的功能.但是当我真正用它时,我发现它可以做的事情还有很多. ...

  4. 【Xilinx-VDMA模块学习】-01- VDMA IP的GUI配置介绍

    使用的是Vivado 2015.4,XC7Z020, AXI Video Direct Memory Acess(6.2). 在我的系统中,GUI配置图片如下:(其实和默认配置没有太大区别) 下面介绍 ...

  5. constrain to margins

    如果你点了constrain to margins,左右会有8个点的空挡,而是从8个点后开始计算约束,而没有点时,已屏幕的0点开始计算.

  6. Python3基础 内嵌函数 简单示例

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  7. css :active伪类的理解

    /*active伪类为点击鼠标按下去还没松开鼠标的那一瞬间的事件*/

  8. iOS 之 assign、retain、copy、nonatomic

    1. assign 1.1. 普通赋值 一般用于基本类型 1.2. 常见委托设计模式 防止循环引用 2. retain 保留计数,获取了对象的所有权.引用计数在原有基础上加1. 3. copy 同re ...

  9. 聚类系数(clustering coefficient)计算

    转自http://blog.csdn.net/pennyliang/article/details/6838956 Clustering coefficient的定义有两种:全局的和局部的. 全局的算 ...

  10. jQuery表单对象属性过滤选择器

    jQuery表单对象属性过滤选择器 <div id="p1" attr="p1"> <input type="text" ...