After building the library, the linking of the tests caused some errors. This was due to the fact, that the Shlwapi library is used by gflags if available, as mentioned in the FindGflags.cmake file. But the check is only done for MSVC compiler and not for WIN32. But gflags uses this library also when building with mingw-w64.
After changing the the variable from MSVC to WIN32, the tests where successfully linked. WIN32 is true for MSVC and MINGW but not for CygWin (since 2.8.4 http://www.cmake.org/Wiki/CMake_Useful_Variables).
Although bulding is done correctly, the following tests fail:
5:block_jacobi_preconditioner_test
7:block_random_access_diagonal_matrix_test
14:corrector_test
16:covariance_test
32:dogleg_strategy_test
34:local_parameterization_test
51:schur_eliminator_test
53:small_blas_test
62:system_test
I am not using SuiteSparse, CXSparse BLAS or LAPACK.
Another issue concerning the cmake process is BLAS and LAPACK. Even if not using SuiteSparse, they can optionally used by Ceres directly for some operations.
Is it possible to simplify this process and let BLAS and LAPACK be detected by cmake and used by ceres, although not using SuiteSparse?
--
Regards,
Simeon
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/0577027b-4007-41ae-850a-7b02b3ca668d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Another issue concerning the cmake process is BLAS and LAPACK. Even if not using SuiteSparse, they can optionally used by Ceres directly for some operations.
Is it possible to simplify this process and let BLAS and LAPACK be detected by cmake and used by ceres, although not using SuiteSparse?
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/CABqdRUBKV8_KZBd1pqLGTPecGxenW9DtxJWq9B2CrDdoRub9UQ%40mail.gmail.com.
//Have function dgemm_
BLAS_f77blas_atlas_WORKS:INTERNAL=
If I don't give this option, the default lapack and blas libraries are found.
-- Found LAPACK library: /usr/lib64/liblapack.so;/usr/lib64/libblas.so
-- Found BLAS library: /usr/lib64/libblas.so
//Path to a library.
LAPACK_lapack_LIBRARY:FILEPATH=/home/atlas/local/lib/liblapack.a
-- Found LAPACK library: /usr/lib64/liblapack.so;/usr/lib64/libblas.so
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/2ebf0af6-6c5a-48da-9fa8-48bc5ef19e79%40googlegroups.com.
<CygwinLastTest.log><MingwLastTest.log>
That last failure in small_blas_test was fixed recently. That tolerance is too tight. Try the master branch and see if you still get a failure.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/E97D65C0-D53A-436E-9A1A-38F38AF7F59E%40gmail.com.
nm /home/atlas/local/lib/libf77blas.a | grep --color dgemm
I suspect this could be CMake getting confused if you are not clearing your build directory between making modifications to various variables.
That last failure in small_blas_test was fixed recently. That tolerance is too tight. Try the master branch and see if you still get a failure.
I receive windows errors, pop up several times:
corrector_test.exe has stopped working. A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available.
b) changing the optimization from -O3 to -O2 in CMAKE_CXX_FLAGS_RELEASE, when compiling with mingw:the segfault errors caused by eigen don't occur anymore.
The small_blas_test still fails with cygwin using the master branch, commit: 998279196969dc7d7795b2c161da6fa8bee11bc8
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/e094befe-35b6-4d6e-bc90-34d85d1cdd4c%40googlegroups.com.
<MinGwLastTest2.log><MinGwLastTest3.log>
From a fresh build directory, if you invoke CMake with —debug-trycompile, and then look at the contents of <BUILD_DIR>/CMakeFiles/
CMakeOutput.log and search for “dgemm”, there should be a section that starts with:
Determining if the function dgemm_ exists passed with the following output:
Determining if the function sgemm_ exists passed with the following output:
Change Dir: /home/benutzer/libbuild/ceres-solver/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/gmake" "cmTryCompileExec2750402384/fast"
/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2750402384.dir/build.make CMakeFiles/cmTryCompileExec2750402384.dir/build
gmake[1]: Entering directory '/home/benutzer/libbuild/ceres-solver/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/benutzer/libbuild/ceres-solver/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec2750402384.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=sgemm_ -o CMakeFiles/cmTryCompileExec2750402384.dir/CheckFunctionExists.c.o -c /usr/share/cmake/Modules/CheckFuncti
Linking C executable cmTryCompileExec2750402384
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2750402384.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=sgemm_ CMakeFiles/cmTryCompileExec2750402384.dir/CheckFunctionExists.c.o -o cmTryCompileExec2750402384 -rdynamic -l
gmake[1]: Leaving directory '/home/benutzer/libbuild/ceres-solver/build/CMakeFiles/CMakeTmp'
Can you please try this patch: https://ceres-solver-review.googlesource.com/#/c/6460/
It should do this automatically when MinGW is detected.
Please try the patch here on Cygwin: https://ceres-solver-review.googlesource.com/6461