PTAM 编译安装 on MAC(mavericks)
最近有需要研究PTAM,所以需要在我的MAC上编译安装,整个过程让人非常崩溃各种问题陷阱。现在整理一下编译过程。我已经成功在MAC上编译。那么接下来我会详细讲解整个过程:
注意: 部分链接可能需要翻墙(政府就知道防范异己者但也影响了我们正常的学术交流)
1. 先安装 blas & lapack
- LAPACK, see http://www.netlib.org/lapack/
- BLAS, see http://www.netlib.org/blas/
先安装BLAS ,需要gfortran 编译器,所以下个gfortran编译器事先,要GNU标准的。
打开终端,然后cd 到BLAS目录
$ make
然后将获得的blas_Linux.a 改名 为 libblas.a 并将改名后的文件拷贝到 /usr/local/lib/
同理cd 到lapack 然后
$make
然后将获得的liblapack.a 如果不为这个名字改一下 并将改名后的文件拷贝到 /usr/local/lib/
2. 安装 ncurses 直接在终端下载安装
$ curl -O ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz
$ tar -xzvf ncurses-5.9.tar.gz
$ cd ./ncurses-5.9
$ ./configure --prefix=/usr/local \
--without-cxx --without-cxx-binding --without-ada --without-progs --without-curses-h \
--with-shared --without-debug \
--enable-widec --enable-const --enable-ext-colors --enable-sigwinch --enable-wgetch-events \
&& make
$ sudo make install
3. 安装TooN 非常简单
$git clone https://github.com/edrosten/TooN.git toon
$cd toon
$./configure
$make install
4. 安装libdc1394
不要从homebrew直接安装 ,因为他默认是64-bit编译的。我们需要32-bit 编译 所以下载安装
libdc1394 下载
$CFLAGS="-arch i386 -m32" CXXFLAGS="-arch i386 -m32" LDFLAGS="-arch i386 -m32" ./configure --disable-sdltest
$make -j8
$make install
5. 需要一些 libtiff, libjpeg, libpng 库 直接 从homebrew 安装就可以 还需要事先安装 xquarz x11(从网上找下载安装)
拿libpng 为例:(需要安装homebrew)
$brew install libpng
其他类似
6.安装 libcvd
$git clone https://github.com/edrosten/libcvd.git libcvd
$cd libcvd
$vi configure.in
# 修改第 483 行 (如果不会用vi可以直接打开这两个文件 configure.in 和 cvd_src/image_io/cvdimage.cxx 修改)
# 将 int main(){InitCursor();EnterMovies();return ;}])],
# 改为:
# int main(){EnterMovies();return ;}])],
# 去掉 580 行:
# a=
vi cvd_src/image_io/cvdimage.cxx
# 修改第 45 行
# #ifdef __GNUC__
# 为:
# #if defined __GNUC__ && !defined __clang__
$ autoconf
# Run XQuartz before configure
$Xquartz &
CPPFLAGS="-D_REENTRANT -I$HOME/include" CFLAGS="-arch i386 -m32" CXXFLAGS="-arch i386 -m32" LDFLAGS="-arch i386 -m32 -L. -L/usr/lib" ./configure --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib --without-ffmpeg --disable-fast7 --disable-fast8 --disable-fast9 --disable-fast11 --disable-fast12
$make -j8
$make install
7 安装 gvars3
需要事先安装依赖库 readline 直接从homebrew安装
$brew install readline
从Git 安装 gvars3 (注意检查你下载的 readline 版本 修改下面路径中的版本 例如6.3.6)
$git clone https://github.com/edrosten/gvars.git gvars
$cd gvars
$CPPFLAGS="-I/usr/include -I/usr/local/Cellar/readline/6.3.6/include" CFLAGS="-arch i386 -m32" CXXFLAGS="-arch i386 -m32" LDFLAGS="-arch i386 -m32 -L/usr/lib -L/usr/local/Cellar/readline/6.3.6/lib" ./configure --disable-widgets
$make -j8
$make install
8 安装 PTAM
ptam 下载
修改 /build/OSX/ 中的两个文件
首先makefile
将 -I/usr/include -I/opt/X11/include -I/usr/local/include 添加到 COMPILEFLAGS
将 -L/usr/lib -L/opt/X11/lib -L/usr/local/lib 添加到 LINKFLAGS
将 -arch i386 -m32 添加到CC 后面
去掉有 /Developer/Tools/Rez 的两行
再来修改 VideoSource_OSX.cc
添加 头文件
#include <unistd.h>
终端 CD 到这个问目录
$ make -j8
编译成功后会有 CameraCalibrator 和 PTAM两个可执行文件 。

如何使用 可以看这个 网址 http://www.robots.ox.ac.uk/~gk/PTAM/usage.html (需要翻墙)

摄像头一定要 外置USB 摄像头 ,内置的不可以。
PTAM 编译安装 on MAC(mavericks)的更多相关文章
- linux 7z 命令编译安装,mac安装p7zip
linux 7z 命令编译安装 7zip是一个开源的压缩软件 7z格式是压缩率最高的格式 服务器备份 数据几个g 要是tar压缩下载的话 时间太长 7zip压缩出来体积很小 首先安装 我这是 ce ...
- nginx编译安装on mac
一.编译安装模块 如果是原有包中就有的模块,编译时, ./configure --with-xxx 就可以, 如果是第三方模块,可使用 --add-module, 如果有多个模块的话,只需要多次使用- ...
- Mac编译安装swfTools
Mac编译安装swfTools Mac编译安装swfTools 下载源码 解压源码 安装依赖项 ./configure执行配置或者执行如下配置命令: 需要注意这里存在部分代码错误,需要修改解决后执行 ...
- Mac Pro 编译安装 Redis 的 PHP 客户端 phpredis
1.去官网下载 redis 扩展源码包 https://github.com/phpredis/phpredis 2.安装 redis 扩展 /usr/local/src/mac-sdk/source ...
- Mac Pro 编译安装 Redis-3.2.3
Redis官方下载地址:http://redis.io/download Redis安装 cd /usr/local/src/redis-3.2.3 sudo make sudo make insta ...
- 记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程
买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下: Mac Pro 编译安装 PHP 5.6.21 及 问题汇总 后来, ...
- Mac Pro 编译安装 Nginx 1.8.1
#下载相关源码包,统一放到 /usr/local/src 目录下: http://nginx.org/download/nginx-1.8.1.tar.gz http://zlib.net/zlib- ...
- mac下Nginx+lua模块编译安装
Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...
- linux(mac) 编译安装MySQL
Reference: https://blog.csdn.net/Tzhennan/article/details/80565235 官方下载地址: https://dev.mysql.com/do ...
随机推荐
- linux下如何关闭防火墙?如何查看防火墙当前的状态
从配置菜单关闭防火墙是不起作用的,索性在安装的时候就不要装防火墙查看防火墙状态:/etc/init.d/iptables status暂时关闭防火墙:/etc/init.d/iptables stop ...
- oracle DML(数据管理语言)sql 基本语句
- [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型
深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...
- 函数式 js 接口实现原理,以及 lodash/fp 模块
函数式 js 接口 之前在 youtube 上看到一个技术视频,讲“underscore.js的接口为什么不好用”,以及什么样的接口更好用.演讲者是 lodash.js 的作者,他提出了一种“全面函数 ...
- maven配置远程仓库
1,当中央仓库无法满足要求时,可能项目需要的构件存在另一个远程仓库中.可以在POM文件中配置该仓库.代码如下: <project> ...... <repositories> ...
- javascript语言理解
1.使用jquery remove,无法remove自身标签; 使用标签
- 耿丹CS16-2班第六次作业汇总
Deadline: 2016-11-13 11:59 作业内容 第六次作业总结 00.本次题目分值最高为**6分/题 × 7题 + 5分/篇 × 1篇 = 47分**,其中有新解法者每题加原创分**2 ...
- set使用方法
set 添加一个无序的,用set方法,访问速度快,天生解决了重复问题 1.difference 指定某个元素从原来set取出,并生成新的set #difference a = set(["a ...
- 基于Unity3D 的Vuforia SDK开发基础教程
最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents ------------------------------------------ ...
- Erlang C1500K长连接推送服务-性能
Whatsapp已经使用Erlang在生产环境跑到96GB内存单机 3M长连接,参加:WhatsApp的Erlang世界.毕竟业务级别能达到Whatsapp那样极少,现在只有千万级,单机太多挂一台影响 ...