pamela-project / slambench

SLAM performance evaluation framework
https://apt.cs.manchester.ac.uk/projects/PAMELA/
Other
311 stars 84 forks source link

Got an error when 'make slambench' in the section "SLAMBench framework" #4

Closed yangautumn43 closed 4 years ago

yangautumn43 commented 6 years ago

Hi there, I got an error when I was trying to 'make slambench' on my PC with Ubuntu 16.04.

Here is part of the compilation message: ` [ 75%] Building CXX object framework/tools/accuracy-tools/CMakeFiles/pointcloud_aligner.dir/pointcloud_aligner.cpp.o In file included from /usr/local/include/pcl-1.8/pcl/console/print.h:44:0, from /usr/local/include/pcl-1.8/pcl/sample_consensus/sac_model.h:49, from /usr/local/include/pcl-1.8/pcl/sample_consensus/sac.h:45, from /usr/local/include/pcl-1.8/pcl/sample_consensus/ransac.h:44, from /usr/local/include/pcl-1.8/pcl/registration/icp.h:45, from /home/yang/Github/slambench2/framework/tools/accuracy-tools/pointcloud_aligner.cpp:20: /usr/local/include/pcl-1.8/pcl/pcl_config.h:19:0: error: "HAVE_OPENNI2" redefined [-Werror]

define HAVE_OPENNI2 1

^ In file included from /home/yang/Github/slambench2/deps/repos/pangolin/include/pangolin/platform.h:30:0, from /home/yang/Github/slambench2/deps/repos/pangolin/include/pangolin/pangolin.h:30, from /home/yang/Github/slambench2/framework/shared/include/SLAMBenchUI_Pangolin.h:6, from /home/yang/Github/slambench2/framework/tools/accuracy-tools/pointcloud_aligner.cpp:12: /home/yang/Github/slambench2/deps/repos/pangolin/src/include/pangolin/config.h:29:0: note: **this is the location of the previous definition

define HAVE_OPENNI2**

^ `

Can anyone help me out?

yangautumn43 commented 6 years ago

I tried the method mentioned in the closed issue #1, but the problem is still there. I have to do the following, which works: In file /usr/local/include/pcl-1.8/pcl/pcl_config.h, I added

 19 #ifndef HAVE_OPENNI2
 20 #define HAVE_OPENNI2 1
 21 #endif
yangautumn43 commented 6 years ago

So my question is that why it still tries to find pcl installed previously in '/usr/include', since the intention of the framework is

The idea is to maximise the chance of a good build, by selection the best cocktail of libraries.

So, how can I modify to instruct the compiler to find pcl installed by running make deps? Thanks.

bbodin commented 6 years ago

Hi Sorry for the delay, I'll try to reproduce the bug and I'll get back. CMake is sometimes quite determined finding unexpected dependencies. Indeed we should not have linked with your systems' PCL.

bbodin commented 6 years ago

Hello @yangautumn I've been able to reproduce the bug. So If I understand you did not run make deps , did you ? When I run make deps or make pcl this problem is fixed. Can you confirm ? However to limit the problem I will also update pangolin for a most recent version.

Cheers, Bruno

yangautumn43 commented 6 years ago

Hi Bruno @bbodin , I did run make deps; then one issue came after it: Failed to install Pangolin. I fixed it according to issue. Then, I run make slambench, after which I got the error `/usr/local/include/pcl-1.8/pcl/pcl_config.h:19:0: error: "HAVE_OPENNI2" redefined [-Werror]

define HAVE_OPENNI2 1. I fixed it by manually adding#ifndef HAVE_OPENNI2to the head ofpcl_config.h` in the original system. After that, I can successfully build and use the software.

I recorded everything happened and I did during the installation in the readme file of the forked repo

yangautumn43 commented 6 years ago

@bbodin , yes the first error would be solved if you update pangolin for a most recent version. Thank you for the work!

bbodin commented 6 years ago

@yangautumn, can you confirm that there is a pcl folder in your deps folder ? If so I cannot explain why your build linked with the usr/local/lib/pcl libs. I could not reproduce that bug. However the second error should be solved as well with updating pangolin, because it does not use OPENNI anymore.

yangautumn43 commented 6 years ago

@bbodin Ok, then the error would be solved. Yes, there is a pcl folder in my deps folder. I have no idea either.

mihaibujanca commented 4 years ago

Closing due to inactivity and lots of updates to the framework since this issue.