Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build in Visual Studio 2013 #26

Open
albertcheng opened this issue Dec 30, 2014 · 10 comments
Open

Cannot build in Visual Studio 2013 #26

albertcheng opened this issue Dec 30, 2014 · 10 comments

Comments

@albertcheng
Copy link

:( It will be awesome if we can have a Visual Studio 2013 compatible .sln file to be more compatible.

@snavely
Copy link
Owner

snavely commented Jan 1, 2015

Hi Albert,

Joaquin Salas was kind enough to share some instructions for compiling in Windows. If you implement this, please feel free to share a patch:

Download Blunder from

https://github.com/snavely/bundler_sfm

To compile Bundler v0.4 in Visual Studio 2013 Ultimate C++, I corrected several of the compilation errors using the following sources and changes

  1. change
    inline to __inline

in matrix.h

  1. I found a set of solutions for the following problems in
    http://blog.csdn.net/azkabannull/article/details/7872958

a. rename files

sysdep1.h0 to sysdep1.h
signal1.h0 to signal1.h

in lib/f2c

b. create the file arith.h using the following lines

#define IEEE_8087
#define Arith_Kind_ASL 1
#define largo int
#define Intcast (int) (largo)
#define Double_Align
#define X64_bit_pointers
#define QNaN0 0x0
#define QNaN1 0xfff80000

place the newly created arith.h in lib/f2c

c. rename
mkdir a _mkdir
in Bundle2PMVS.cpp, and add the line at the top of the file #include <direct.h>

Also, eliminate the second parameter

from _mkdir(output_path, 0770); to _mkdir(output_path);

d. In the file RadialUndistort.cpp

change the lines

char *space = index(buf, ' ');
if (space) *space = 0;
files.push_back(std::string(buf));

to

std::string str(buf);
int space_pos = str.find(' ');
str.at(space_pos) = 0;
files.push_back(str);

  1. in the file filter.c

comment the entire definition for the
static double erf (double x)

function.

  1. In the file KeyMatchFull.cpp

include the file

#include

to use the max function

  1. in the files TwoFrameModel.cpp and BundleAdd.cpp
    comment the line

//#define isnan _isnan

  1. For each project add /FS

project-> properties -> Configuration properties ->C/C++ ->Command Line -> Additional Options

just as it is explained in
http://msdn.microsoft.com/en-us/library/dn502518.aspx

  1. Add
    ..\lib\jpeg\src

in the RadialUndistort project

project->properties -> C/C++ -> Additional Include Directories

@albertcheng
Copy link
Author

Thanks! I am giving it a shot now. Re: patch, how to do a patch? I think some of the changes may cause build error for earlier compilers.

@albertcheng
Copy link
Author

KeyMatchFull should include <"algorithm">

@albertcheng
Copy link
Author

for me, adding /FS imposes no change of the error message pattern. I ended up following this post http://stackoverflow.com/questions/20643370/visual-studio-2013-fatal-error-c1041-fs

and changed the configuration of the intermediate directory for impacted projects.

@albertcheng
Copy link
Author

I can compile it now with over 743 warnings :$

@snavely
Copy link
Owner

snavely commented Jan 2, 2015

Any chance of using #defines to make this compile on both Linux and Windows?

Noah

On Fri, Jan 2, 2015 at 1:12 AM, albertcheng notifications@github.com
wrote:

I can compile it now with over 743 warnings :$


Reply to this email directly or view it on GitHub
#26 (comment).

@jiaojialulu
Copy link

error C1083: Unable to open source file: “..\src\SifterUtil.cpp”: No such file or directoryG:\bundler_sfm-master\vc++\c1xx Bundler
How Can I fix it?

@lshGame
Copy link

lshGame commented Feb 23, 2017

The error "Unable to open source file: “..\src\SifterUtil.cpp”" is caused by filename replacement(SfiterUtil->BundleUtil).
Solution: Before open bundle.sln, open Bundler.vcproj and replace SifterUtil.cpp/h to BundleUtil.cpp/h

@snavely
Copy link
Owner

snavely commented Feb 23, 2017 via email

@sieubebuvietnam
Copy link

sieubebuvietnam commented Mar 23, 2017

Hi
When I tried to build imagelib in separately project, I didn't see some header files such as "dmap.h" and "error.h", which are included in some file in imagelib source code?
I also received some error such as when I tried to build clapack lib, compiler said that some function such as "double sqrt(doublereal), s_cat" can not find the implementation of its?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants