Ubuntu 下编译安装Bundler

参考转自http://www.cnblogs.com/weizhoupan/archive/2011/03/08/1977366.html 编译安装,因为编译过程中遇到了一些问题,将自己的经验总结一下!

一、Bundler源码包获取

利用Noah Snavely提供的源码包,网址:http://www.cs.cornell.edu/~snavely/bundler/ 。(自己下载的是:bundler_sfm-master.tar.gz)

二、安装python

源码中utils/bundler.py 需要系统中安装了python和Python Image Library (PIL)。安装步骤如下:

安装python2.7:

sudo apt-get install python2.7;

安装Python Image Library :

$ sudo apt-get install python-imaging

$ sudo apt-get install libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

$ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/

$ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/

$ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/

$ sudo apt-get install pip

$ pip install PIL

三、安装Gfortran

Bundler所依赖的库中有些库是用Fortran写成的(例如./lib/minpack)。为了编译Fortran程序,需要安装GFortran编译器。

$ sudo apt-get install gfortran

四、编译 / 安装依赖库

Bundler所依赖的外部库列表如下:

(1)LAPACK:线性代数计算库

(2)BLAS  :基础线性代数子程序,在LAPACK包中有自带,但需进行设置

(3)libjpeg  :jpeg库,Ubuntu已自带

(4)libz   :通用目的的压缩库

1. LAPACK、BLAS的编译

LAPACK(Linear Algebra PACKage)库,是用Fortran语言编写的线性代数计算库,包含线性方程组求解(AX=b)、矩阵分解、矩阵求逆、求矩阵特征值、奇异值等。该库用BLAS库做底层运算,许多高层的数学库都用BLAS和LAPACK做底层。
     BLAS(Basic Linear Algebra Subprograms)库,是用Fortran语言实现的向量和矩阵运算库,是许多数值计算软件库的核心, 但也有一些其它的包装, 如cblas是C语言, 也有C++的包装, boost/ublas 是C++ template class的实现; 另外还有一些特别的实现, 如intel MKL, AMD core math library blas就是做向量、矩阵的基本运算,如加、减、乘等操作。

a)下载lapack编译包

网址:http://www.netlib.org/lapack/#_strong_lapack_version_3_3_0_strong。(自己下载的是:lapack-3.5.0.tgz)

b)解压

$ tar -zxvf lapack-3.5.0.tgz

c)在make之前,需要先创建一个make.inc文件,可以直接根据make.inc.example创建:

$ cd lapack-3.5.0

$ cp make.inc.example make.inc

如果是使用Ubuntu+gfortran,则无须更改make.inc里的内容,否则需要根据系统环境和编译器修改文件里对应的选项。LAPACK依赖BLAS,因此在编译LAPACK前需要提供BLAS包,所幸LAPACK里已经集成了BLAS包,但默认并不编译它。要想编译LAPACK前先编译BLAS,需要修改一下makefile:

$ gedit Makefile

光标定位到第11行并将内容改为:

$ lib: blaslib lapacklib tmglib

编译完成后,目录下将生成lib***blas.a、liblapack.a和libtmglib.a三个文件。

将这三个文件分别更名为: libblas.a,liblapack.a,libtmglib.a并复制到bundler_sfm-master/lib目录下。

2. zlib的编译安装

   zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目。zlib的官方主页为: http://www.zlib.net/,目前最新版为:zlib-1.2.8。

a) 解压:

$ tar -zxvf zlib-1.2.8.tar.gz

b) cd进去编译安装:

$ cd zlib-1.2.8

$ ./configure

$ make

$ sudo make install

五、编译安装ceres-solver

ceres及其依赖库的安装参考网址:ceres-solver.org。

编译安装Bundler

回到Bundler的工程目录,make进行编译安装。

$ make

完成后在bin目录下就会看到新生成的bundler可执行文件。

本人在编译过程主要出现以下问题:

问题一:

gcc: error trying to exec ‘f951‘: execvp: 没有那个文件或目录

make[1]: *** [dpmpar.o] 错误 1

解决方法:

缺少fortran编译器,安装gfortran; 命令:sudo apt-get install gfortran; 如果还是出现相同的错误,检查gcc,g++版本是否一直,因为自己之前将gcc4.6换到了gcc4.4,而自己安装的gfortran是需要4.6的,所以一直编译有问题,将其换回来,编译通过。

问题2:

安装成功ceres-solves后,编译出现:

BundleCeres.cpp:20:25: 致命错误: ceres/ceres.h:没有那个文件或目录 编译中断。

make[1]: *** [BundleCeres.o] 错误 1

make[1]:正在离开目录 `/home/linasnoopy/2014_2015/3D/bundler_sfm_master/src‘ make: *** [default] 错误 2

解决方法:

src/makefile里添加路径(ceres/ceres.h所在的路径)

路径添加后为:

INCLUDE_PATH=-I../lib/imagelib -I../lib/sfm-driver -I../lib/matrix \

-I../lib/5point -I../lib/sba-1.5 -I../lib/ann_1.1_char/include  \

-I../include -I../../ceres-solver-1.9.0/include -I../../ceres-solver-1.9.0/internal \

-I../../ceres-solver-1.9.0/config

时间: 2024-08-01 11:52:48

Ubuntu 下编译安装Bundler的相关文章

Ubuntu下编译安装QEMU

Ubuntu下编译安装QEMU 由于环境需求,今天在ubuntu14.04的环境下手动编译安装了QEMU2.1.2. QEMU下载地址:http://wiki.qemu-project.org/download/qemu-2.1.2.tar.bz2 具体下载及解压步骤这里就不在赘述了,主要就是说下环境准备的一些依赖包,编译QEMU最重要的就是gcc,所以我们要先把gcc安装上. [email protected]:~# apt-get install gcc-3.4 cpp-3.4 安装QEMU

Ubuntu 下编译安装linux

1. 准备工作切换为管理员权限,sudo –i 输入用户密码 进入root 权限apt-get install build-essential kernel-package libncurses5-dev libqt3-headersbuild-essential (基本的编程库(gcc, make 等)kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)libncurses5-dev (meke menuconfig 要调用的) libqt

一、Ubuntu下编译安装Mysql5.0.45

一.编译安装Mysql5.0.45 在Ubuntu下搭建LNMP环境.编译安装mysql,nginx,php.最后在LNMP前提下安装composer,并且安装laravel框架.首先,第一步开始编译安装Mysql. 步骤: cd /usr/local/src,进入到文件夹中,这个文件夹用来保存所需使用的软件安装包. 接着键入"sudo wgethttp://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.45.tar.gz"回车,如果

二、Ubuntu下编译安装Nginx1.8.0

    在Ubuntu下搭建LNMP环境.编译安装mysql,nginx,php.最后在LNMP前提下安装composer,并且安装laravel框架.首先,第二步开始编译安装Nginx1.8.0 1.先进入"/usr/local/src"文件夹中,接着键入 "sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz"回车,等待下载完毕.下载完毕后,执行"sudo tar zxvf nginx-1.8.0

二、Ubuntu下编译安装PHP5.6.16

    在Ubuntu下搭建LNMP环境.编译安装mysql,nginx,php.最后在LNMP前提下安装composer,并且安装laravel框架.首先,第三步开始编译安装PHP5.6.16 1.先进入"/usr/local/src"文件夹中,接着键入 "sudo wget http://cn2.php.net/distributions/php-5.6.16.tar.gz"回车,等待下载完毕.下载完毕后,执行"sudo tar zxvf php-5.

三、Ubuntu下编译安装PHP5.6.16

    在Ubuntu下搭建LNMP环境.编译安装mysql,nginx,php.最后在LNMP前提下安装composer,并且安装laravel框架.首先,第三步开始编译安装PHP5.6.16 1.先进入"/usr/local/src"文件夹中,接着键入 "sudo wget http://cn2.php.net/distributions/php-5.6.16.tar.gz"回车,等待下载完毕.下载完毕后,执行"sudo tar zxvf php-5.

ubuntu下编译安装php

依赖库: sudo apt-get install autoconf sudo apt-get install libxml2-dev sudo apt-get install bzip2 sudo apt-get install libcurl3-openssl-dev sudo apt-get install libcurl4-gnutls-dev sudo apt-get install libjpeg-dev sudo apt-get install libpng-dev sudo ap

ubuntu下编译安装mysql记录

搞了整整一天,好不容易折腾完,在此记录下,下次就省事了.     去官网http://www.php.net/downloads.php下载所需要的php版本,这里我选择5.6.22.     下载:    wget http://cn2.php.net/distributions/php-5.6.22.tar.gz     解压:    tar -zxvf  php-5.6.22.tar.gz && cd php-5.6.22    configure脚本:     /configure

Ubuntu下编译安装运行FreeRdp连接Windows.

linux下编译源码进行USB重定向到远程桌面的测试,经过参数的正确配置,可以正常的重定向.具体的操作步骤如下: ⑴在虚拟机上安装git,安装命令如:sudo apt-get install git. ⑵从GitHub下载FreeRdp源码,命令:git clone git://github.com/FreeRDP/FreeRDP.git ⑶到FreeRdp目录下下载FreeRDP编译和运行所依赖的关系库,命令:sudo apt-get install build-essential git-c