Package Details: ceres-solver 2.0.0-1

Git Clone URL: https://aur.archlinux.org/ceres-solver.git (read-only, click to copy)
Package Base: ceres-solver
Description: Solver for nonlinear least squares problems
Upstream URL: http://ceres-solver.org/
Licenses: LGPL
Submitter: dtag
Maintainer: dtag
Last Packager: dtag
Votes: 17
Popularity: 0.79
First Submitted: 2015-11-27 09:36
Last Updated: 2020-11-02 14:15

Latest Comments

1 2 3 4 Next › Last »

dtag commented on 2020-11-02 14:15

@greve: I have changed the PKGBUILD accordingly. Please try reinstalling.

greve commented on 2020-11-01 13:17

@dtag: Yes, it builds when adding the -DBUILD_BENCHMARKS=OFF flag to the cmake command.

dtag commented on 2020-10-31 07:17

@greve: I have looked into this. The errror-causing files are related to benchmarking functionality within ceres. This benchmarking part is only built when the Google 'benchmark' library is found. (At least, the AUR version benchmark-git does not appear to compile for me.) Why your seemingly valid configuration gets you these unresolved externals is not quite clear to me, but you could try to avoid the issue by adding -D BUILD_BENCHMARKS=OFF to see if that fixes things for you? If it does, I think we could just add BUILD_BENCHMARKS=OFF to the PKGBUILD, as I do not believe it is required for any functionality.

greve commented on 2020-10-30 23:43

Error when compiling (already retried with cleaned cache). Using yay:

[ 92%] Building CXX object internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_d_d_d.cc.o
[ 93%] Linking CXX shared library ../../lib/libceres.so
[ 93%] Built target ceres
Scanning dependencies of target schur_eliminator_benchmark
[ 93%] Building CXX object internal/ceres/CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o
/home/nico/.cache/yay/ceres-solver/src/ceres-solver-2.0.0/internal/ceres/schur_eliminator_benchmark.cc:130:6: warning: no previous declaration for ‘void ceres::internal::BM_SchurEliminatorEliminate(benchmark::State&)’ [-Wmissing-declarations]
  130 | void BM_SchurEliminatorEliminate(benchmark::State& state) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nico/.cache/yay/ceres-solver/src/ceres-solver-2.0.0/internal/ceres/schur_eliminator_benchmark.cc:153:6: warning: no previous declaration for ‘void ceres::internal::BM_SchurEliminatorBackSubstitute(benchmark::State&)’ [-Wmissing-declarations]
  153 | void BM_SchurEliminatorBackSubstitute(benchmark::State& state) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nico/.cache/yay/ceres-solver/src/ceres-solver-2.0.0/internal/ceres/schur_eliminator_benchmark.cc:181:6: warning: no previous declaration for ‘void ceres::internal::BM_SchurEliminatorForOneFBlockEliminate(benchmark::State&)’ [-Wmissing-declarations]
  181 | void BM_SchurEliminatorForOneFBlockEliminate(benchmark::State& state) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nico/.cache/yay/ceres-solver/src/ceres-solver-2.0.0/internal/ceres/schur_eliminator_benchmark.cc:195:6: warning: no previous declaration for ‘void ceres::internal::BM_SchurEliminatorForOneFBlockBackSubstitute(benchmark::State&)’ [-Wmissing-declarations]
  195 | void BM_SchurEliminatorForOneFBlockBackSubstitute(benchmark::State& state) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 94%] Linking CXX executable ../../bin/schur_eliminator_benchmark
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BM_SchurEliminatorEliminate(benchmark::State&)':
schur_eliminator_benchmark.cc:(.text+0x65): undefined reference to `ceres::internal::ThreadPool::ThreadPool()'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x109): undefined reference to `ceres::internal::SchurEliminatorBase::Create(ceres::internal::LinearSolver::Options const&)'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x11e): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x3a1): undefined reference to `ceres::internal::ThreadPool::~ThreadPool()'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x484): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BM_SchurEliminatorBackSubstitute(benchmark::State&)':
schur_eliminator_benchmark.cc:(.text+0x675): undefined reference to `ceres::internal::ThreadPool::ThreadPool()'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x719): undefined reference to `ceres::internal::SchurEliminatorBase::Create(ceres::internal::LinearSolver::Options const&)'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x72e): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x92b): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0xa11): undefined reference to `ceres::internal::ThreadPool::~ThreadPool()'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0xaf2): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BM_SchurEliminatorForOneFBlockEliminate(benchmark::State&)':
schur_eliminator_benchmark.cc:(.text+0xd22): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x1065): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BM_SchurEliminatorForOneFBlockBackSubstitute(benchmark::State&)':
schur_eliminator_benchmark.cc:(.text+0x1262): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text+0x147f): undefined reference to `ceres::internal::BlockSparseMatrix::block_structure() const'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o:schur_eliminator_benchmark.cc:(.text+0x15f5): more undefined references to `ceres::internal::BlockSparseMatrix::block_structure() const' follow
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::ContextImpl::~ContextImpl()':
schur_eliminator_benchmark.cc:(.text._ZN5ceres8internal11ContextImplD2Ev[_ZN5ceres8internal11ContextImplD5Ev]+0x11): undefined reference to `ceres::internal::ThreadPool::~ThreadPool()'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::ContextImpl::~ContextImpl()':
schur_eliminator_benchmark.cc:(.text._ZN5ceres8internal11ContextImplD0Ev[_ZN5ceres8internal11ContextImplD5Ev]+0x15): undefined reference to `ceres::internal::ThreadPool::~ThreadPool()'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BenchmarkData::BenchmarkData(int)':
schur_eliminator_benchmark.cc:(.text._ZN5ceres8internal13BenchmarkDataC2Ei[_ZN5ceres8internal13BenchmarkDataC5Ei]+0x241): undefined reference to `ceres::internal::BlockSparseMatrix::BlockSparseMatrix(ceres::internal::CompressedRowBlockStructure*)'
/usr/bin/ld: schur_eliminator_benchmark.cc:(.text._ZN5ceres8internal13BenchmarkDataC2Ei[_ZN5ceres8internal13BenchmarkDataC5Ei]+0x3dc): undefined reference to `ceres::internal::BlockRandomAccessDenseMatrix::BlockRandomAccessDenseMatrix(std::vector<int, std::allocator<int> > const&)'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BM_SchurEliminatorEliminate(benchmark::State&) [clone .cold]':
schur_eliminator_benchmark.cc:(.text.unlikely+0x37): undefined reference to `ceres::internal::ThreadPool::~ThreadPool()'
/usr/bin/ld: CMakeFiles/schur_eliminator_benchmark.dir/schur_eliminator_benchmark.cc.o: in function `ceres::internal::BM_SchurEliminatorBackSubstitute(benchmark::State&) [clone .cold]':
schur_eliminator_benchmark.cc:(.text.unlikely+0x96): undefined reference to `ceres::internal::ThreadPool::~ThreadPool()'
collect2: error: ld returned 1 exit status
make[2]: *** [internal/ceres/CMakeFiles/schur_eliminator_benchmark.dir/build.make:108: bin/schur_eliminator_benchmark] Error 1
make[1]: *** [CMakeFiles/Makefile2:171: internal/ceres/CMakeFiles/schur_eliminator_benchmark.dir/all] Error 2
make: *** [Makefile:160: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
error making: ceres-solver

The weird thing is, that it compiled without any errors on my laptop.

And when pulling the official ceres-solver repo and compiling the master branch like so, it compiles just fine.

dtag commented on 2020-10-08 10:45

@xantares: This appears to be a bug in the current Eigen release as you can see here: https://bugs.archlinux.org/task/68118 the link also lists a possible workaround. I guess we have to wait until this is fixed in the Eigen package?

Edit: Compilation works again as per eigen 3.3.8-3

xantares commented on 2020-10-08 10:09

hello, it seems it fails to build with the eigen update

edit nevermind, see eigen-qfix

schmidtbag commented on 2019-09-09 23:15

@dtag: I too noticed it was weird how it pointed to /share/eigen3/cmake, but /share is a symlink to /usr/share. That being said, I confirmed eigen3 is in /usr/share/eigen3/cmake; as expected. I'm not really sure when Arch started doing this symlink; I know I didn't do that. I actually didn't even notice it until right now. I wonder if perhaps this symlink is somehow screwing with the build? I'm a bit wary of deleting it, since I don't know why it exists in the first place.

dtag commented on 2019-09-09 11:26

@schmidtbag: Might be an issue on your end. I cannot reproduce this on multiple machines. Also, it is weird that it says "-- Found installed version of Eigen: /share/eigen3/cmake". This is not a location where you should have installed eigen. Specifically, the eigen package does not do that. It should be saying: "-- Found installed version of Eigen: /usr/share/eigen3/cmake".

schmidtbag commented on 2019-09-08 16:08

Seems to have issues finding eigen:

-- No preference for use of exported Eigen CMake configuration set, and no hints for include directory provided. Defaulting to preferring an installed/exported Eigen CMake configuration if available.
-- Found installed version of Eigen: /share/eigen3/cmake
CMake Error at cmake/FindEigen.cmake:89 (message):
Failed to find Eigen - Could not find file:
//include/eigen3/Eigen/src/Core/util/Macros.h containing version
information in Eigen install located at: //include/eigen3.
Call Stack (most recent call first):
cmake/FindEigen.cmake:219 (eigen_report_not_found)
CMakeLists.txt:212 (find_package)

xantares commented on 2019-07-01 09:02

hi, I dont think openmp dependency is needed, that's the llvm variant, whereas we build with gcc here