mapillary / OpenSfM

Open source Structure-from-Motion pipeline
https://www.opensfm.org/
BSD 2-Clause "Simplified" License
3.39k stars 859 forks source link

CMake error with python3 setup.py build SuiteSparse::SPQR target not found #946

Open yashbhalgat opened 2 years ago

yashbhalgat commented 2 years ago

I get the following error when I try to build OpenSFM with python3 setup.py build:

Configuring for python 3.6...
-- 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).
-- Found METIS library: /usr/lib/x86_64-linux-gnu/libmetis.so.
-- Found required Ceres dependency: Eigen version 3.3.4 in /usr/lib/cmake/eigen3
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.1.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, Multithreading]
-- 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 available.
-- Found installed version of gflags: /usr/lib/x86_64-linux-gnu/cmake/gflags
-- Detected gflags version: 2.2.1
-- Found OpenCV: /usr (found version "3.2.0") 
-- Found OpenCV: /usr (found version "3.2.0") found components:  core imgproc calib3d imgcodecs 
-- pybind11 v2.2.4
-- Configuring done
CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pybundle" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  bundle/CMakeLists.txt:53 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pybundle" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  bundle/CMakeLists.txt:53 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pybundle" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  bundle/CMakeLists.txt:53 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pybundle" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  bundle/CMakeLists.txt:53 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pygeometry" links to target "SuiteSparse::CHOLMOD" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  geometry/CMakeLists.txt:46 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pygeometry" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  geometry/CMakeLists.txt:46 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pygeometry" links to target "SuiteSparse::CHOLMOD" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  geometry/CMakeLists.txt:46 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pygeometry" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  geometry/CMakeLists.txt:46 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pyrobust" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  robust/CMakeLists.txt:26 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pyrobust" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  robust/CMakeLists.txt:26 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pyrobust" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  robust/CMakeLists.txt:26 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pyrobust" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  robust/CMakeLists.txt:26 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pysfm" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  sfm/CMakeLists.txt:33 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pysfm" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
Call Stack (most recent call first):
  sfm/CMakeLists.txt:33 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pysfm" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  sfm/CMakeLists.txt:33 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pysfm" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
Call Stack (most recent call first):
  sfm/CMakeLists.txt:33 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pymap" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  map/CMakeLists.txt:37 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pymap" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
Call Stack (most recent call first):
  map/CMakeLists.txt:37 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pymap" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?
Call Stack (most recent call first):
  map/CMakeLists.txt:37 (pybind11_add_module)

CMake Error at third_party/pybind11/tools/pybind11Tools.cmake:131 (add_library):
  Target "pymap" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?
Call Stack (most recent call first):
  map/CMakeLists.txt:37 (pybind11_add_module)

CMake Error at bundle/CMakeLists.txt:17 (add_library):
  Target "bundle" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at bundle/CMakeLists.txt:17 (add_library):
  Target "bundle" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at bundle/CMakeLists.txt:39 (add_executable):
  Target "bundle_test" links to target "SuiteSparse::CHOLMOD" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at bundle/CMakeLists.txt:39 (add_executable):
  Target "bundle_test" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at geometry/CMakeLists.txt:21 (add_library):
  Target "geometry" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at geometry/CMakeLists.txt:21 (add_library):
  Target "geometry" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at geometry/CMakeLists.txt:36 (add_executable):
  Target "geometry_test" links to target "SuiteSparse::CHOLMOD" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?

CMake Error at geometry/CMakeLists.txt:36 (add_executable):
  Target "geometry_test" links to target "SuiteSparse::SPQR" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at robust/CMakeLists.txt:18 (add_library):
  Target "robust" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at robust/CMakeLists.txt:18 (add_library):
  Target "robust" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at sfm/CMakeLists.txt:9 (add_library):
  Target "sfm" links to target "SuiteSparse::CHOLMOD" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at sfm/CMakeLists.txt:9 (add_library):
  Target "sfm" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at sfm/CMakeLists.txt:24 (add_executable):
  Target "sfm_test" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at sfm/CMakeLists.txt:24 (add_executable):
  Target "sfm_test" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at map/CMakeLists.txt:54 (add_executable):
  Target "map_test" links to target "SuiteSparse::CHOLMOD" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at map/CMakeLists.txt:54 (add_executable):
  Target "map_test" links to target "SuiteSparse::SPQR" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at map/CMakeLists.txt:20 (add_library):
  Target "map" links to target "SuiteSparse::CHOLMOD" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at map/CMakeLists.txt:20 (add_library):
  Target "map" links to target "SuiteSparse::SPQR" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

-- Generating done
-- Build files have been written to: /home/yash/OpenSfM/cmake_build
Traceback (most recent call last):
  File "setup.py", line 59, in <module>
    configure_c_extension()
  File "setup.py", line 43, in configure_c_extension
    subprocess.check_call(cmake_command, cwd="cmake_build")
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '../opensfm/src', '-DPYTHON_EXECUTABLE=/usr/bin/python3']' returned

I have installed all dependencies. I also have libsuitesparse-dev installed (newest version: 1:5.1.2-2).

I have Ubuntu 18.04, Python 3.6.9

yashbhalgat commented 2 years ago

I was able to successfully run the build process by rolling back to the commit 38a7fa8 as per https://github.com/mapillary/OpenSfM/issues/804#issuecomment-952894393.

But I am not able to do so otherwise.