mapillary / mapillary/OpenSfM

Builds fails on Ubuntu [static assertion failed]

Open
#782 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.8k
Forks
899
PR merge metrics
No merged PRs in 30d

Description

I build this project on Ubuntu 16.04, python 3.7. And I meet the following error:
Configuring for python 3.7...
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- A library with BLAS API found.
-- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so
-- Found AMD header in: /usr/include/suitesparse
-- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so
-- Found CAMD header in: /usr/include/suitesparse
-- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so
-- Found COLAMD header in: /usr/include/suitesparse
-- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so
-- Found CCOLAMD header in: /usr/include/suitesparse
-- Found CHOLMOD library: /usr/lib/x86_64-linux-gnu/libcholmod.so
-- Found CHOLMOD header in: /usr/include/suitesparse
-- Found CXSPARSE library: /usr/lib/x86_64-linux-gnu/libcxsparse.so
-- Found SuiteSparseQR library: /usr/lib/x86_64-linux-gnu/libspqr.so
-- Found SuiteSparseQR header in: /usr/include/suitesparse
-- Found Intel Thread Building Blocks (TBB) library: /usr/lib/x86_64-linux-gnu/libtbb.so, assuming SuiteSparseQR was compiled with TBB.
-- Found Intel Thread Building Blocks (TBB) Malloc library: /usr/lib/x86_64-linux-gnu/libtbbmalloc.so
-- Found SuiteSparse_config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so
-- Found SuiteSparse_config header in: /usr/include/suitesparse
-- Adding librt: /usr/lib/x86_64-linux-gnu/librt.so to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
-- Did not find METIS library (optional SuiteSparse dependency)
-- No preference for use of exported gflags CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported gflags CMake configuration if availab
le.
-- Found installed version of gflags: /usr/local/lib/cmake/gflags
-- Detected gflags version: 2.2.2
-- pybind11 v2.2.4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/qhzhang/code/ytb-driving/OpenSfM/cmake_build
Compiling extension...
[ 2%] Built target gtest
[ 6%] Built target akaze
[ 35%] Built target vl
[ 39%] Built target foundation
[ 41%] Built target test_main
[ 42%] Built target dense
[ 45%] Built target features
[ 46%] Built target bundle
[ 52%] Built target geometry
[ 54%] Built target geo
[ 56%] Built target dense_test
[ 58%] Built target foundation_test
[ 59%] Built target pydense
[ 61%] Built target pyfeatures
[ 62%] Built target geo_test
[ 64%] Built target pygeo
[ 65%] Building CXX object geometry/CMakeFiles/geometry_test.dir/test/covariance_test.cc.o
[ 66%] Built target pygeometry
[ 72%] Built target robust
[ 79%] Built target map
[ 82%] Built target bundle_test
[ 84%] Built target pyrobust
[ 86%] Built target pybundle
[ 89%] Built target sfm
[ 94%] Built target map_test
[ 94%] Built target pymap
[ 96%] Built target sfm_test
[ 97%] Built target pysfm
In file included from /usr/include/eigen3/Eigen/Core:297:0,
from /usr/local/include/ceres/jet.h:165,
from /home/qhzhang/code/ytb-driving/OpenSfM/opensfm/src/geometry/test/covariance_test.cc:1:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Block<Eigen::Matrix<Eigen::AutoDiffScalar<Eigen::Matrix<double, -1, 1> >, -1, 1, 0, -1, 1>, 3, 1, false>; Src = Eigen::Matrix<double, 3, 1>; Func = Eigen::internal::assign_op<Eigen::AutoDiffScalar<Eigen::Matrix<double, -1, 1> > >]’:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:712:27: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing::value), void*>::type) [with Dst = Eigen::Block<Eigen::Matrix<Eigen::AutoDiffScalar<Eigen::Matrix<double, -1, 1> >, -1, 1, 0, -1, 1>, 3, 1, false>; Src = Eigen::Matrix<double, 3, 1>; Func = Eigen::internal::assign_op<Eigen::AutoDiffScalar<Eigen::Matrix<double, -1, 1> > >; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing::value), void*>::type = void*]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:693:18: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Block<Eigen::Matrix<Eigen::AutoDiffScalar<Eigen::Matrix<double, -1, 1> >, -1, 1, 0, -1, 1>, 3, 1, false>; Src = Eigen::Matrix<double, 3, 1>]’
/usr/include/eigen3/Eigen/src/Core/Assign.h:66:28: required from ‘Derived& Eigen::MatrixBase::operator=(const Eigen::DenseBase&) [with OtherDerived = Eigen::Matrix<double, 3, 1>; Derived = Eigen::Block<Eigen::Matrix<Eigen::AutoDiffScalar<Eigen::Matrix<double, -1, 1> >, -1, 1, 0, -1, 1>, 3, 1, false>]’
/home/qhzhang/code/ytb-driving/OpenSfM/opensfm/src/geometry/test/covariance_test.cc:33:30: required from here
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar);
^
geometry/CMakeFiles/geometry_test.dir/build.make:110: recipe for target 'geometry/CMakeFiles/geometry_test.dir/test/covariance_test.cc.o' failed
make[2]: *** [geometry/CMakeFiles/geometry_test.dir/test/covariance_test.cc.o] Error 1
CMakeFiles/Makefile2:939: recipe for target 'geometry/CMakeFiles/geometry_test.dir/all' failed
make[1]: *** [geometry/CMakeFiles/geometry_test.dir/all] Error 2
Makefile:94: recipe for target 'all' failed
make: *** [all] Error 2
Traceback (most recent call last):
File "setup.py", line 47, in
build_c_extension()
File "setup.py", line 43, in build_c_extension
subprocess.check_call(["make", "-j4"], cwd="cmake_build")
File "/home/qhzhang/anaconda3/envs/ytb-driving/lib/python3.7/subprocess.py", line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-j4']' returned non-zero exit status 2.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with geometry/test/covariance_test.cc at the assignment reported on line 33, then review setup.py and the CMake build output to reproduce the failure on Ubuntu with Python 3.7. Confirm the geometry test compiles successfully and the project build completes without the Eigen static assertion.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
build-system, testing
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.