Skip to content

Problems building on OSX with Eigen #283

@DeFrenZ

Description

@DeFrenZ

using homebrew latest eigen is installed (3.2.0) and brew doctor gives no issues. Building pcl with the following formula:

require 'formula'

class Pcl < Formula
  homepage 'http://www.pointclouds.org'
  url 'https://github.com/PointCloudLibrary/pcl/archive/pcl-1.7.0.tar.gz'
  sha1 'b387f1ab218f545e3fe9f3c59d73b8fa8e2cf5ca'

  head 'https://github.com/PointCloudLibrary/pcl.git'

  depends_on 'cmake' => :build
  depends_on 'boost'
  depends_on 'eigen'
  depends_on 'flann'
  depends_on 'vtk'
  depends_on 'qhull'

  option 'with-debug', "Enable debug symbols"

  def install
    args = std_cmake_parameters.split

    if build.with? 'debug'
      args << "-DCMAKE_BUILD_TYPE=Debug"
    end

    system "mkdir build"
    args << ".."
    Dir.chdir 'build' do
      system "cmake", *args
      system "make install"
    end
  end

  def test
    system "bash -c 'echo | plyheader'"
  end
end

gives the following errors:

In file included from /tmp/-GJqJ/pcl-pcl-1.7.0/search/src/organized.cpp:40:
In file included from /tmp/-GJqJ/pcl-pcl-1.7.0/common/include/pcl/point_types.h:310:
In file included from /tmp/-GJqJ/pcl-pcl-1.7.0/common/include/pcl/impl/point_types.hpp:45:
In file included from /usr/local/include/eigen3/Eigen/Core:324:
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:5: fatal error: recursive template instantiation exceeded
      maximum depth of 128
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
    ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:93: note: in instantiation of member function
      'Eigen::internal::triangular_assignment_selector<Eigen::Matrix<double, 12, 12, 1, 12, 12>, Eigen::Matrix<double, 12, 12,
      1, 12, 12>, 1, 25, true>::run' requested here
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
                                                                                            ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:93: note: in instantiation of member function
      'Eigen::internal::triangular_assignment_selector<Eigen::Matrix<double, 12, 12, 1, 12, 12>, Eigen::Matrix<double, 12, 12,
      1, 12, 12>, 1, 26, true>::run' requested here
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
                                                                                            ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:93: note: in instantiation of member function
      'Eigen::internal::triangular_assignment_selector<Eigen::Matrix<double, 12, 12, 1, 12, 12>, Eigen::Matrix<double, 12, 12,
      1, 12, 12>, 1, 27, true>::run' requested here
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
                                                                                            ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:93: note: in instantiation of member function
      'Eigen::internal::triangular_assignment_selector<Eigen::Matrix<double, 12, 12, 1, 12, 12>, Eigen::Matrix<double, 12, 12,
      1, 12, 12>, 1, 28, true>::run' requested here
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
                                                                                            ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:93: note: in instantiation of member function
      'Eigen::internal::triangular_assignment_selector<Eigen::Matrix<double, 12, 12, 1, 12, 12>, Eigen::Matrix<double, 12, 12,
      1, 12, 12>, 1, 29, true>::run' requested here
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
                                                                                            ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:93: note: (skipping 119 contexts in backtrace; use
      -ftemplate-backtrace-limit=0 to see all)
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:184:20: note: in instantiation of function template specialization
      'Eigen::PlainObjectBase<Eigen::Matrix<double, 12, 12, 1, 12, 12> >::operator=<Eigen::TriangularView<const
      Eigen::Matrix<double, 12, 12, 1, 12, 12>, 1> >' requested here
      return Base::operator=(other);
                   ^
/usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:412:7: note: in instantiation of function template
      specialization 'Eigen::Matrix<double, 12, 12, 1, 12, 12>::operator=<Eigen::TriangularView<const Eigen::Matrix<double,
      12, 12, 1, 12, 12>, 1> >' requested here
  mat = matrix.template triangularView<Lower>();
      ^
/usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:159:7: note: in instantiation of member function
      'Eigen::SelfAdjointEigenSolver<Eigen::Matrix<double, 12, 12, 1, 12, 12> >::compute' requested here
      compute(matrix, options);
      ^
/tmp/-GJqJ/pcl-pcl-1.7.0/common/include/pcl/common/impl/projection_matrix.hpp:188:82: note: in instantiation of member
      function 'Eigen::SelfAdjointEigenSolver<Eigen::Matrix<double, 12, 12, 1, 12, 12> >::SelfAdjointEigenSolver' requested
      here
  Eigen::SelfAdjointEigenSolver<Eigen::Matrix<Scalar, 12, 12, Eigen::RowMajor> > ei_symm (X);
                                                                                 ^
/tmp/-GJqJ/pcl-pcl-1.7.0/search/include/pcl/search/impl/organized.hpp:364:25: note: in instantiation of function template
      specialization 'pcl::estimateProjectionMatrix<pcl::PointXYZ>' requested here
  double residual_sqr = pcl::estimateProjectionMatrix<PointT> (input_, projection_matrix_, indices);
                        ^
/usr/local/include/eigen3/Eigen/src/Core/TriangularMatrix.h:444:5: note: use -ftemplate-depth=N to increase recursive template
      instantiation depth
    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
    ^
1 error generated.
make[2]: *** [search/CMakeFiles/pcl_search.dir/src/organized.cpp.o] Error 1
make[1]: *** [search/CMakeFiles/pcl_search.dir/all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions