最近有需要研究PTAM,所以需要在我的MAC上编译安装,整个过程让人非常崩溃各种问题陷阱。现在整理一下编译过程。我已经成功在MAC上编译。那么接下来我会详细讲解整个过程:

注意: 部分链接可能需要翻墙(政府就知道防范异己者但也影响了我们正常的学术交流)

1. 先安装 blas & lapack

先安装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)的更多相关文章

  1. linux 7z 命令编译安装,mac安装p7zip

    linux 7z 命令编译安装 7zip是一个开源的压缩软件  7z格式是压缩率最高的格式 服务器备份 数据几个g 要是tar压缩下载的话 时间太长  7zip压缩出来体积很小 首先安装 我这是 ce ...

  2. nginx编译安装on mac

    一.编译安装模块 如果是原有包中就有的模块,编译时, ./configure --with-xxx 就可以, 如果是第三方模块,可使用 --add-module, 如果有多个模块的话,只需要多次使用- ...

  3. Mac编译安装swfTools

    Mac编译安装swfTools Mac编译安装swfTools 下载源码 解压源码 安装依赖项 ./configure执行配置或者执行如下配置命令: 需要注意这里存在部分代码错误,需要修改解决后执行 ...

  4. Mac Pro 编译安装 Redis 的 PHP 客户端 phpredis

    1.去官网下载 redis 扩展源码包 https://github.com/phpredis/phpredis 2.安装 redis 扩展 /usr/local/src/mac-sdk/source ...

  5. 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 ...

  6. 记 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 及 问题汇总 后来, ...

  7. Mac Pro 编译安装 Nginx 1.8.1

    #下载相关源码包,统一放到 /usr/local/src 目录下: http://nginx.org/download/nginx-1.8.1.tar.gz http://zlib.net/zlib- ...

  8. mac下Nginx+lua模块编译安装

    Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...

  9. linux(mac) 编译安装MySQL

    Reference: https://blog.csdn.net/Tzhennan/article/details/80565235 官方下载地址:  https://dev.mysql.com/do ...

随机推荐

  1. Python中的if __name__='__main__'语句的作用

    笔者在自学Python的过程中,对于if __name__='__main__'的用法感到很困惑,在think Python一书中原作者的源代码是这么解释if __name__='__main__'语 ...

  2. 【bzoj1672】[USACO2005 Dec]Cleaning Shifts 清理牛棚

    题目描述 Farmer John's cows, pampered since birth, have reached new heights of fastidiousness. They now ...

  3. web自动化工具-Browsersync

    web自动化工具-Browsersync browser-sync才是神器中的神器,和livereload一样支持监听所有文件.可是和livereload简单粗暴的F5刷新相比,browsersync ...

  4. Laravel 安装代码智能提示扩展「laravel-ide-helper」

    ========================laravel-ide-helper======================== 使用 Laravel 框架IDE居然没有智能提示?这感觉实在太糟糕 ...

  5. WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日

    进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...

  6. 解决pip安装超时

    我们在使用python开发的时候总会需要安装很多第三方模块 比如我用flask搭建web, 需要很多第三方模块,比如flask-sqlalchemy, flask-bootstrap等等.而这些模块用 ...

  7. tcp_tw_reuse、tcp_tw_recycle 使用场景及注意事项

    linux TIME_WAIT 相关参数: net.ipv4.tcp_tw_reuse = 表示开启重用.允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭 net.i ...

  8. jquery判断多个input输入框不能输入相同的值

    function checkName(data){ //校验联系信息不能一致 var values=""; $(".t").each(function(i,it ...

  9. ABAP 订单-交货单-发货过账自动完成 案例

    *&---------------------------------------------------------------------* *& Report  ZSDR006 ...

  10. BFS

    广(宽)度优先搜索算法(Breadth-First-Search):  BFS是从根节点开始,沿着树的宽度遍历树的节点.如果所有节点均被访问,则算法中止.遍历过程如图,一层一层的找(在访问图中某一起始 ...