Can't find Suitesparse

3,977 views
Skip to first unread message

michaels...@gmail.com

unread,
Jun 1, 2017, 9:33:00 AM6/1/17
to Ceres Solver
I managed to build Suitesparse (using Clang). However, ceres does not seem to recognize it.

-- A library with BLAS API found.
-- Found LAPACK library: /usr/lib/liblapack.so;/usr/lib/libf77blas.so;/usr/lib/libatlas.so
-- Found BLAS library: /usr/lib/libf77blas.so;/usr/lib/libatlas.so
-- Building without SuiteSparse.
-- Building without CXSparse.
   ===============================================================
   Compiling without any sparse library: SuiteSparse, CXSparse 
   & Eigen (Sparse) are all disabled or unavailable.  No sparse 
   linear solvers (SPARSE_NORMAL_CHOLESKY & SPARSE_SCHUR)
   will be available when Ceres is used.

despite that I have (copied manually as make install did not want to do it for me)

libsuitesparseconfig.so and so on in /usr/local/lib

any suggestions? [I guess copying into /usr/local/include ?? but not sure what to call the folder]

Cheers, Mike

michaels...@gmail.com

unread,
Jun 1, 2017, 9:35:56 AM6/1/17
to Ceres Solver
I am using 4.5.5

the output I get after running make install is (partially):

( cd Lib ; make install )
make[2]: Entering directory '/opt/suitesparse/SuiteSparse/SPQR/Lib'
make[2]: Nothing to be done for 'install'.
make[2]: Leaving directory '/opt/suitesparse/SuiteSparse/SPQR/Lib'
make[1]: Leaving directory '/opt/suitesparse/SuiteSparse/SPQR'

Mike

Alex Stewart

unread,
Jun 1, 2017, 3:14:48 PM6/1/17
to ceres-...@googlegroups.com
There should be more output from Ceres about why SuiteSparse was disabled, that would only be shown on the first configure though, when SUITESPARSE will be ON by default until something turns it OFF.  Thereafter when Ceres is re-configured it will be with SUITESPARSE=OFF and the log output won’t be shown as find_package(SuiteSparse) will not be being called.

You can force the error output to reappear by configuring Ceres with:

cmake -DSUITESPARSE=ON <PATH_TO_CERES_SOURCE_DIR>

what does the Ceres CMake output say then?

-Alex

-- 
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/a8c4a0c2-0157-4a77-b9fa-b244c8ba7d85%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

michaels...@gmail.com

unread,
Jun 2, 2017, 6:10:37 AM6/2/17
to Ceres Solver
Thanks Alex.  This makes it clear. It misses the headers. I will copy those manually as well then. 

-- A library with BLAS API found.
-- Found LAPACK library: /usr/lib/liblapack.so;/usr/lib/libf77blas.so;/usr/lib/libatlas.so
-- Found BLAS library: /usr/lib/libf77blas.so;/usr/lib/libatlas.so
-- A library with BLAS API found.
-- Found AMD library: /usr/local/lib/libamd.so
-- Failed to find SuiteSparse - Did not find AMD header (required SuiteSparse component).
-- Found CAMD library: /usr/local/lib/libcamd.so
-- Failed to find SuiteSparse - Did not find CAMD header (required SuiteSparse component).
-- Found COLAMD library: /usr/local/lib/libcolamd.so
-- Failed to find SuiteSparse - Did not find COLAMD header (required SuiteSparse component).
-- Found CCOLAMD library: /usr/local/lib/libccolamd.so
-- Failed to find SuiteSparse - Did not find CCOLAMD header (required SuiteSparse component).
-- Found CHOLMOD library: /usr/local/lib/libcholmod.so
-- Failed to find SuiteSparse - Did not find CHOLMOD header (required SuiteSparse component).
-- Found SuiteSparseQR library: /usr/local/lib/libspqr.so
-- Failed to find SuiteSparse - Did not find SUITESPARSEQR header (required SuiteSparse component).
-- Found SuiteSparse_config library: /usr/local/lib/libsuitesparseconfig.so
-- Failed to find SuiteSparse - Failed to find either: SuiteSparse_config header & library (should be present in all SuiteSparse >= v4 installs), or UFconfig header (should be present in all SuiteSparse < v4 installs).
-- Found METIS library: /usr/local/lib/libmetis.so.
-- Failed to find some/all required components of SuiteSparse. (missing:  AMD_FOUND CAMD_FOUND COLAMD_FOUND CCOLAMD_FOUND CHOLMOD_FOUND SUITESPARSEQR_FOUND SUITESPARSE_VERSION) 

michaels...@gmail.com

unread,
Jun 2, 2017, 9:10:11 AM6/2/17
to Ceres Solver
I moved my headers into /usr/local/include/suitesparse and it is almost ok. However, I now have one missing header

- Found CHOLMOD library: /usr/local/lib/libcholmod.so
-- Found CHOLMOD header in: /usr/local/include/suitesparse
-- Found SuiteSparseQR library: /usr/local/lib/libspqr.so
-- Failed to find SuiteSparse - Did not find SUITESPARSEQR header (required SuiteSparse component).
-- Found SuiteSparse_config library: /usr/local/lib/libsuitesparseconfig.so
-- Found SuiteSparse_config header in: /usr/local/include/suitesparse

I do seem to have SuiteSparseQR_C and SuiteSparseQR_definitions.h there. 

RBio.h                       umfpack_report_numeric.h
cholmod_check.h        SuiteSparse_config.h         umfpack_report_perm.h
cholmod_cholesky.h     SuiteSparseQR_C.h            umfpack_report_status.h
cholmod_complexity.h   SuiteSparseQR_definitions.h

Not sure what the problem is. May be the latest SuiteSparse updated file names? How can I figure out which file it is looking for?

Best, Mike
Reply all
Reply to author
Forward
0 new messages