norlab-ulaval / libpointmatcher

An Iterative Closest Point (ICP) library for 2D and 3D mapping in Robotics
BSD 3-Clause "New" or "Revised" License
1.61k stars 544 forks source link

cannot build from source on Ubuntu 12.04 #51

Closed pmolina7 closed 9 years ago

pmolina7 commented 9 years ago

I am unable to build libpointmatcher (master branch) from source. I tried using the PPAs but for precise they conflict with the ROS version of yaml cpp.

I have Eigen and Boost installed. Installed libNabo from source as well.(master branch)

There are linking errors:

Linking CXX executable align_sequence
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const [clone ._omp_fn.5]':
kdtree_cpu.cpp:(.text+0xc93): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0xd34): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0xd4b): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const [clone ._omp_fn.4]':
kdtree_cpu.cpp:(.text+0x1013): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x10d4): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x10eb): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const [clone ._omp_fn.1]':
kdtree_cpu.cpp:(.text+0x13ac): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x144c): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x1463): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const [clone ._omp_fn.0]':
kdtree_cpu.cpp:(.text+0x172c): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x17ec): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x1803): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const [clone ._omp_fn.7]':
kdtree_cpu.cpp:(.text+0x1d1b): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x1dbc): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x1dd3): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const [clone ._omp_fn.6]':
kdtree_cpu.cpp:(.text+0x205b): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x211c): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x2133): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const [clone ._omp_fn.3]':
kdtree_cpu.cpp:(.text+0x23bc): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x245c): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x2473): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const [clone ._omp_fn.2]':
kdtree_cpu.cpp:(.text+0x26fc): undefined reference to `GOMP_loop_guided_start'
kdtree_cpu.cpp:(.text+0x27bc): undefined reference to `GOMP_loop_guided_next'
kdtree_cpu.cpp:(.text+0x27d3): undefined reference to `GOMP_loop_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_25IndexHeapBruteForceVectorIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_ifjf[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const]+0x142): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_25IndexHeapBruteForceVectorIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_ifjf[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const]+0x151): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_25IndexHeapBruteForceVectorIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IfLin1ELi1ELi0ELin1ELi1EEEifj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const]+0x14a): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_25IndexHeapBruteForceVectorIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IfLin1ELi1ELi0ELin1ELi1EEEifj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapBruteForceVector<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const]+0x159): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_25IndexHeapBruteForceVectorIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_idjd[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const]+0x14e): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_25IndexHeapBruteForceVectorIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_idjd[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const]+0x15d): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_25IndexHeapBruteForceVectorIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IdLin1ELi1ELi0ELin1ELi1EEEidj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const]+0x14d): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_25IndexHeapBruteForceVectorIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IdLin1ELi1ELi0ELin1ELi1EEEidj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapBruteForceVector<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const]+0x15c): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_12IndexHeapSTLIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_ifjf[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const]+0x142): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_12IndexHeapSTLIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_ifjf[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, int, float, unsigned int, float) const]+0x151): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_12IndexHeapSTLIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IfLin1ELi1ELi0ELin1ELi1EEEifj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const]+0x14a): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIfNS_12IndexHeapSTLIifEEE3knnERKN5Eigen6MatrixIfLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IfLin1ELi1ELi0ELin1ELi1EEEifj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<float, Nabo::IndexHeapSTL<int, float> >::knn(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, -1, 0, -1, -1>&, Eigen::Matrix<float, -1, 1, 0, -1, 1> const&, int, float, unsigned int) const]+0x159): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_12IndexHeapSTLIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_idjd[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const]+0x14e): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_12IndexHeapSTLIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_idjd[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, int, double, unsigned int, double) const]+0x15d): undefined reference to `GOMP_parallel_end'
/usr/local/lib/libnabo.a(kdtree_cpu.cpp.o): In function `Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const':
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_12IndexHeapSTLIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IdLin1ELi1ELi0ELin1ELi1EEEidj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const]+0x14d): undefined reference to `GOMP_parallel_start'
kdtree_cpu.cpp:(.text._ZNK4Nabo48KDTreeUnbalancedPtInLeavesImplicitBoundsStackOptIdNS_12IndexHeapSTLIidEEE3knnERKN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEERNS5_IiLin1ELin1ELi0ELin1ELin1EEERS6_RKNS5_IdLin1ELi1ELi0ELin1ELi1EEEidj[Nabo::KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt<double, Nabo::IndexHeapSTL<int, double> >::knn(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, int, double, unsigned int) const]+0x15c): undefined reference to `GOMP_parallel_end'
collect2: ld returned 1 exit status
make[2]: *** [examples/align_sequence] Error 1
make[1]: *** [examples/CMakeFiles/align_sequence.dir/all] Error 2
make: *** [all] Error 2

Please let me know if I am making a mistake. Thank you for your time and help.

pomerlef commented 9 years ago

I suspect that your CMake is not pointing to libnabo or something related. Did you follow this: https://github.com/ethz-asl/libpointmatcher/blob/master/doc/Compilation.md

If it doesn't work, could you post your CMakeCache.txt?

simonlynen commented 9 years ago

Libpoint matcher has to compile with openmp. @pomerlef you need to add the openmp flag to pointmatcher's cmakelist.

simonlynen commented 9 years ago

@pomerlef Preferably copy this: https://github.com/ethz-asl/libnabo/blob/master/CMakeLists.txt#L51

pomerlef commented 9 years ago

@simonlynen Any ways to have those flags optional? There are quite some code relying on libnabo...

stephanemagnenat commented 9 years ago

If the flag is required, shouldn't it be provided in the link flags for nabo through the generated libnaboConfig.cmake?

simonlynen commented 9 years ago

@pomerlef it is optional https://github.com/ethz-asl/libnabo/blob/master/CMakeLists.txt#L51 if the user has openmp it is activated. @stephanemagnenat yes I will try to export that properly.

simonlynen commented 9 years ago

@stephanemagnenat I will investigate why my previous approach: https://github.com/ethz-asl/libnabo/blob/master/libnaboConfig.cmake.in#L16 doesn't seem to work

pmolina7 commented 9 years ago

Thanks @simonlynen Adding this: https://github.com/ethz-asl/libnabo/blob/master/CMakeLists.txt#L51 to the libpointmatcher CMakeLists.txt file solves the issue. Once you resolve it permanently, I can try this all again.

pomerlef commented 9 years ago

This should be fix with the commit 790f2b5daf0557a0e87a80d782ac9f43190620e6

@pmolina7 Could you update you libnabo repository, clean your build files and rebuild libnabo and libpointmatcher? Everything should work now.

pmolina7 commented 9 years ago

Thank you @pomerlef - it all builds correctly now :)