编译PTAM与PTAMM-记

本文记录了在Windows XP和VS2008环境下,编译PTAM及其增强版PTAMM的过程,包括编译libCVD、gvars3和解决各种编译问题的详细步骤,例如修改头文件、配置选项和解决依赖库问题。
摘要由CSDN通过智能技术生成

编译PTAM,弄了一天,终于搞定了。记录一下。

 平台说明:Windows XP, VS2008


首先编译libCVD库:

1、依赖toon库,toon作为一个头文件包包含进工程include目录即可;2、toon/internal/config.hh 只保留#define TOON_USE_LAPACK 1这一项即可;(使用lapack和Blas的/MT选项的库,^_^)3、删除libcvd工程下的附加包含目录中的"$(includedir)"和附加库目录中的"$(libdir)";4、编译cvdimage.cxx文件时,其包含了#include<array>语句,其中array类型定义在Visual Studio 2008SP1中,但是也可以用boost来替代,如下所示://#include <array>#include <boost/array.hpp>using namespace boost;5、添加对png图片的支持,在cvd目录下的config.h文件中添加:#ifndef CVD_DISABLE_PNG #define CVD_HAVE_PNG 1#endif6、添加png.cc文件到工程目录Source Files->pnm_src中;7、编译时,选择/MT(/MTD)选项,使用多线程静态库进行编译;8、编译通过,生成了libcvd.lib和libcvdd.lib文件;


然后在编译gvars3:

1、在gvars3工程下移除fltk支持:

GUI_Fltk2.h

GUI_Fltk2.cc

2、在gvars3目录下创建config.h文件:

#ifndef GVARS3_INCLUDE_CONFIG_H

#define GVARS3_INCLUDE_CONFIG_H

#define GVARS3_HAVE_TOON 1

#endif

3、在工程的附加包含目录中仅保留../..即可;

4、编译时会产生error C2064: 项不计算0个参数的函数;

做以下替换即可:

//template<class T> static T& get(const std::string& name, const T& default_val=DefaultValue<T>::val(), int flags=0);

template<class T> static T& get(const std::string& name, const T& default_val=T(), int flags=0);

 

最后编译PTAM库:

1、将PTAM/Build/Win32目录下的所有文件拷贝到PTAM目录下,打开解决方案文件;

2、将libCVD和GVars的include目录和lib目录包含到PTAM解决方案中;

3、编译时需要将SymEigen.h文件中的

ev = makeVector(A_plus_B, -A_plus_B/2 + A_minus_B * sqrt(3)/2, -A_p

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 67
    评论
评论 67
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值