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

Linux build - Issues #46

Open
lgitano opened this issue Feb 8, 2022 · 0 comments
Open

Linux build - Issues #46

lgitano opened this issue Feb 8, 2022 · 0 comments

Comments

@lgitano
Copy link

lgitano commented Feb 8, 2022

Hello,

i'd like to chime here in with compiling Regard3D (great program!) for Linux 64bit. I have been following the official howto here https://www.regard3d.org/images/R3D-Building.pdf and managed almost successfully through all the required steps. The program is up and running, a few things are still a gamestopper, though:

  1. PoissonRecon (current GIT release and older versions)

well, that one was a real bugger... compiling it with gcc ate almost all of my ram (16gb), took forever (day and night) and still never completed. After a few attempts i switched over to clang compiler in
the Makefile, et voila: it took an hour to compile and finished everything. Only thing is that:

  • Poissonrecon, PointInterpolant and SSDRecon get quite huge binaries (26-57mB) compared to the win32 nad osx binaries (2-6mB) <- i guess this is not normal?
  • PoissonRecon and EDTInHeat executed in a terminal crash with a "terminate called without an active exception Aborted (core dumped)" <- i guess this is really not good

i am really ot of ideas here, does my machine need more RAM? Different compiler options?

  1. Regard3D (current GIT release)

That one compiled quite well, however:

  • once started it errors with "Third party executables not found. Please put them where the executable is located.". Executables reside perfectly fine in subdirs inside Regard3D dir (/opt/Regard3D/mve, /opt/Regard3D//pmvs, /opt/Regard3D//poisson).

Examining the source code in src/utils/R3DExternalPrograms.cpp it also seems to look for the correct paths.
However, i noticed that there is only the definition for windows executables here

#if defined(R3D_WIN32)
                executableExtension = wxT("exe");
#endif

no mention of R3D_LINUX or R3D_MACOSX as defined in the Makefile, i guess the program is searching for .exe files only here, correct? Would it be necessary to add these definitions here and how?

Uncommenting the call for R3DExternalPrograms::getInstance().initialize(); in src/Regard3DApp.cpp however did the trick with removing the error message.

I am still not certain though if Regard3D calls correctly for the needed programs, how can i test that, with gdb f.e.?
Program seems to work so far for loading images and finding matches, triangulation takes significantly more time than the windows and osx version on the same machine. However densification stops with:

execvp(pictureset_0/matching_0/triangulation_0/densification_0/PMVS/, 100, 8) failed with error 13!
execvp(pictureset_0/matching_0/triangulation_0/densification_0/PMVS/, 1, 2, 0.700000, 7, 3, 8) failed with error 13!

on startup Regard3D complains that it cannot create a dir ".Regard3D" because a configfile with the same name already exists. Is there a way to adjust that in the source, e.g. creating one hidden dir .Regard3D and then creating the config file inside?

I am still starting diving into this, if someone here could point me in a direction where these issues could be solved, i'd be very grateful :) Once this is up and running, i'd love to bundle a snap package or similar for further testing.

Thank You very much!

Cheers,
lgitano

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

1 participant