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 ...
随机推荐
- 电子线路 PCB 中大电流 接口 和 布线问题;
问题1:电流 大小 和 PCB 中 布线线宽的 关系,电源和信号 稳定性? 问题2:大电流中 接口问题,如microUSB 充电接口中,2A等 快充时接口 会 发热,如果 接口的 布线 太细和 不妥善 ...
- wxPython 自动提示文本框
1.原版和例子都在这里 在浏览器的地址栏,或者在百度.google 输入文字的时候,输入框的下面会把有关的项目都提示出来. wxPython 没有提供类似的控件,google 了一下,发现了一个,很好 ...
- Maven模块聚合
一个Maven工程中一般会有很多模块组成,为了构建的方便通常想一次构建多个模块,Maven聚合这一特性就是为该需求服务的. 假设我们有account-email和account-persist两个模块 ...
- MySQL 从 5.5 升级到 5.6,启动时报错 [ERROR] Plugin 'InnoDB' init function returned error
MySQL 从 5.5 升级到 5.6,启动时报错: [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'Inn ...
- PHP获取某月天数
方式一: <?php function days($year,$month){ if($month<10){ $month = '0'.$month; } if($month == 12) ...
- js数组中sort排序注意的地方
var a=[1,2,3,4,5] function sum(a,b) { return a-b } //从小到大 function obj(a,b) { return b-a } //从大到小 a. ...
- linux下查看和添加PATH环境变量
linux下查看和添加PATH环境变量 $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PA ...
- 连载 [ LTS + Top ]
+---[ LTS List ]--->| 1. 每日被自己坑的debugging.. http://www.cnblogs.com/tmzbot/p/5582302.html| 2. [待添加 ...
- 基于webapi的移动互联架构
又到了一年最后一次上班了,写下这篇日志作为本年总结. 首先总体介绍一下项目背景,今年公司开发了一款app,本人一个人负责app的接口服务.微信开放平台搭建以及系统后台,上线半年,如今活跃用户数3W+. ...
- 【ASP.NET】复制单个文件同时到多个目录
有时候,当我们更新了一个dll文件后,需要将该dll文件复制到到不同的文件夹中,手动操作会很麻烦,因此可以考虑利用程序实现. 利用powershell批量复制 示例代码如下: $source=&quo ...