Pangolin安装报错解决-创新互联

Pangolin安装报错解决

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了扬中免费建站欢迎大家使用!

视觉SLAM十四讲$3.7节需要。

在本地slambook2/3rdparty文件夹git submodule update,这个版本是和书中的版本一致的。

首先需要安装OpenGL

以及Cmake、C++11等,
然后建立build文件夹,在内部编译:

mkdir build
cd build
cmake ..
make

不出意外的话,会报错:

  • include/pangolin/gl/colour.h:57:18:error: ‘numeric_limits’ is not a member of ‘std’
    57 | std::numeric_limits::quiet_NaN(), std::numeric_limits::quiet_NaN(),
  • include/pangolin/utils/picojson.h:383:12:note:in definition of macro ‘GET’
    383 |     returnvar;
  • include/pangolin/utils/picojson.h:390:124:warning:suggest parentheses around assignment used as truth value [-Wparentheses]
    390 | ->type_ = number_type,const_cast(this)->u_.number_ = u_.int64_), u_.number_))

我改动了几个文件,然后通过编译了。具体改动是:

  • include/pangolin/gl/gl.h, include/pangolin/gl/colour.h 这两个文件,加入
#include#include
  • 在对应的CMakeLists.txt中加入C++11
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ")
  • include/pangolin/utils/picojson.h 文件390行加2个括号
#ifdef PICOJSON_USE_INT64
GET(double,
    (type_ == int64_type && ((const_cast(this)->type_ = number_type), (const_cast(this)->u_.number_ = u_.int64_)),
     u_.number_))
GET(int64_t, u_.int64_)

如果实在不行,总是报错,比如你已经重新安装了Eigen库,这时有可能因为版本不一致而无法安装书中指定的这个版本的Pangolin。那么只需要在别的文件夹获取一个pangolin并编译就行了,可参考readme进行安装。

git clone https://github.com/stevenlovegrove/Pangolin.git

有博客指出直接git clone这个有各种问题导致编译不过,应该用GitHub上的release版压缩包,别git clone。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:Pangolin安装报错解决-创新互联
本文路径:http://myzitong.com/article/dehppp.html