win10下 bundler下载安装

前提:windows下配置好VS2013

1、访问 http://www.cs.cornell.edu/~snavely/bundler/ 下载bundler-v0.4-source.zip并解压。

2、打开vs2013,打开bundler-v0.4-source目录下vc++目录中的Bundler.sln工程

3、依次编译bundler所需要的依赖库  5point、ann_1.1_char、cblas、getopt、imagelib、jpeg、matrix、sba-1.5、sfm-driver、f2c、clapack、cminpack,keyMatchFull、Bundler、Bundlr2PMVS、RadialUndistort,可能遇到的错误如下:

  • 编译5point:

         matrix.h中会出现错误 ,error C2054: 在“inline”之后应输入“(” ,参考博客,解决方法是在头文件添加如下语句:

          #if defined(WIN32) && !defined(__cplusplus)

          #define inline __inline

          #endif

  • 编译imagelib

           error C2491: “erf”: 不允许 dllimport 函数 的定义,修改如下:

             进入filter.c屏蔽该函数

  • 编译f2c

           会给出无法找到#include"sysdep1.h"文件的错误,修改如下:

            进入f2c目录,将sysdep1.h0文件名修改为sysdep1.h、将signal1.h0文件名修改为signal1.h、

          再次编译f2c库时,会提示无法找到#include"arith.h"文件的错误,同时在f2c目录下并没有名字为arith.h的文件

                         新建一个arith.h文件,内容如下:

                     #define IEEE_8087

                     #define Arith_Kind_ASL 1

                     #define Long int

                     #define Intcast (int)(long)

                     #define Double_Align

                     #define X64_bit_pointers

                     #define QNaN0 0x0

                     #define QNaN1 0xfff80000

  • 编译keyMatchFull、Bundler

​​​​​​​             

            error C2491: “erf”: 不允许 dllimport 函数的定义

                解决办法是将函数注释掉,不需要这个函数。

               还会报错一个LNK问题。

               解决办法是将imagelib那个项目编译一遍,会自动在LNK文件处添加依赖库,让问题得以解决

  • 编译Bundlr2PMVS

​​​​​​​         error C3861: “mkdir”:  找不到标识符

           在文件的开头添加#include

           同时将mkdir替换为_mkdir,如下所示:

           //mkdir(output_path,0770);

            _mkdir(output_path);

  • 编译RadialUndistort

​​​​​​​         出现“无法识别的标识符index”。

 //char *space = index(buf, ' ');

 //if (space) *space = 0;

  将其替换为:

 std::string str(buf);

  intspace_pos = str.find(' ');

 str.at(space_pos) = 0;

  files.push_back(str);

 error C1083: 无法打开包括文件: “jpeglib.h”: No such file or directory

     在RadialUndistort的属性页的c/c++  ->常规 -> 附加包含目录-> 增加项目lib包下的jpeg/src路径。(..\lib\jpeg\src)

     属性---c/c++----常规-----附加包含目录添加..\lib\jpeg\src;..\lib\imagelib;..\include; ..\lib\matrix; ..\lib\sfm-driver

    链接库----常规----------附加库目录增加文件路径\bundler-v0.4-source\vc++\Debug

你可能感兴趣的:(win10下 bundler下载安装)