• 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;

    sudo apt-get install python-dev;

    安装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

    注意:安装完glags和google-glog后,要将/usr/local/lib 中的共享链接库:libglog.so.0 和 libgflags.so.2 复制/usr/lib中;

    编译安装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

     

  • 相关阅读:
    利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用
    HTML5项目笔记10:使用HTML5 IndexDB设计离线数据库
    MySQL数据库安装
    安装维护手册
    XXX银行项目部署
    使用Excel批量给数据添加单引号和逗号
    sublime3 快速创建html模板
    Wyn Enterprise 报表查询面板三种实现方法汇总
    仪表板中选项卡外观样式详细设置讲解
    Wyn Enterprise 自助式分析(1)门户中的个人偏好设置
  • 原文地址:https://www.cnblogs.com/AngelLee/p/4089446.html
Copyright © 2020-2023  润新知