Pangolin的使用

  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

时间: 2024-12-06 20:28:58

Pangolin的使用的相关文章

网络安全系列之三十七 Pangolin(穿山甲)和Havij(胡萝卜)的使用

在入侵过程中,必然要借助于一些工具软件,像明小子和啊D都属于比较古老的软件,功能有限,而Pangolin和Havij则是两款相对功能比较强大的软件,本文将介绍它们的基本用法.实验环境采用NMPServer搭建,使用其中的第一个网站. 网站页面http://192.168.80.129/info_show.php?info_id=142明显存在注入漏洞,我们先用明小子进行注入,前几步在猜解表名和列名时都没问题,但是在最后关键的猜解用户名和密码的步骤中却失败了. 下面用Pangolin来注入,首先对

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

安装了Ubuntu 12.04 64bit, 想在上面安装Oracle 11gr2,网上找了好多文档都没成功,最后完全参考了MordicusEtCubitus的文章. 成功安装的关键点:install additional packages, 在link过程中处理错误的方法. 原文:http://www.makina-corpus.org/blog/howto-install-oracle-11g-ubuntu-linux-1204-precise-pangolin-64bits Before

使用pangolin库画出轨迹

https://github.com/stevenlovegrove/Pangolin cmake_minimum_required(VERSION 2.8) project(chapter3) set(CMAKE_CXX_STANDARD 11) include_directories("/usr/include/eigen3") find_package(Pangolin REQUIRED) include_directories(${Pangolin_INCLUDE_DIRS})

Installing cmake 2.8.8 or higher on Ubuntu 12.04 (Precise Pangolin) (转载)

转自:http://cameo54321.blogspot.com/2014/02/installing-cmake-288-or-higher-on.html Check the version of your Cmake using cmake --version If 2.8.7, Download the latest CMake version from the CMake web site Uncompress it in a new folder Create a _build d

Pangolin中opengl的混合(gl_blend)

Blend 混合是将源色和目标色以某种方式混合生成特效的技术.混合常用来绘制透明或半透明的物体.在混合中起关键作用的α值实际上是将源色和目标色按给定比率进行混合,以达到不同程度的透明.α值为0则完全透明,α值为1则完全不透明.混合操作只能在RGBA模式下进行,颜色索引模式下无法指定α值.物体的绘制顺序会影响到OpenGL的混合处理. glEnable( GL_BLEND );   // 启用混合 glDisable( GL_BLEND );  // 禁用关闭混合 获得混合的信息 glGet( G

了解网站渗透

在百度找到这样一片文章:讲的是渗透的过程,虽然还是有很多不懂,觉得写的不错,留下来慢慢研究: 首先把,主站入手 注册一个账号,看下上传点,等等之类的. 用google找下注入点,格式是 Site:XXX.com inurl:asp|php|aspx|jsp 最好不要带 www,因为不带的话可以检测二级域名. 扫目录,看编辑器和Fckeditor,看下敏感目录,有没有目录遍及, 查下是iis6,iis5.iis7,这些都有不同的利用方法 Iis6解析漏洞 Iis5远程溢出, Iis7畸形解析 Ph

ORB SLAM2在Ubuntu 16.04上的运行配置

安装依赖 安装OpenGL 1. 安装opengl Library$sudo apt-get install libgl1-mesa-dev2. 安装opengl utility$sudo apt-get install libglu1-mesa-dev3. 安装opengl utility toolkit$sudo apt-get install freeglut3-dev 安装GLEW $sudo apt-get install libglew-dev 安装boost $sudo apt-g

linux端口详解

以下内容摘自网络,来源不清了,做个备份吧: 0|无效端口,通常用于分析操作系统 1|传输控制协议端口服务多路开关选择器 2|管理实用程序 3|压缩进程 5|远程作业登录 7|回显 9|丢弃 11|在线用户 13|时间 17|每日引用 18|消息发送协议 19|字符发生器 20|FTP文件传输协议(默认数据口) 21|FTP文件传输协议(控制) 22|SSH远程登录协议 23|telnet(终端仿真协议),木马Tiny Telnet Server开放此端口 24|预留给个人用邮件系统 25|SMT

那些年我们一起追逐过的安全工具

前言 每一段岁月,都会留下属于时代的记忆——那些年,我们所追逐与热衷的安全工具,亦是如此. 在那个信息不对称的年代,安全工具主要是在小圈子内传播.当年天真的我们(脚本小子),以为网络就是江湖,一套完美的工具就是你的兵器——路见不平一声吼,碰到注入亮阿D. 注:由于年代久远,当年的工具大多已停止更新,如今网上所能搜到的又可能携带后门,所以本文中就不提供下载地址了 阿D注入工具 简介 第一个介绍的肯定是阿D注入工具.那个时候大家都不大会用SQLMAP,或者根本没听说过.当时对SQL注入检测工具最出名