Closed gitouni closed 1 year ago
I have the same setup as you do and i encountered a very similar error:
[ 15%] Performing build step for 'viz3d'
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/lib/ccache/cc
-- Check for working C compiler: /usr/lib/ccache/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/lib/ccache/c++
-- Check for working CXX compiler: /usr/lib/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at cmake/external.cmake:8 (find_package):
By not providing "Findglog.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "glog", but
CMake did not find one.
Could not find a package configuration file provided by "glog" with any of
the following names:
glogConfig.cmake
glog-config.cmake
Add the installation prefix of "glog" to CMAKE_PREFIX_PATH or set
"glog_DIR" to a directory containing one of the above files. If "glog"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
CMakeLists.txt:11 (include)
-- Configuring incomplete, errors occurred!
See also "/home/MyUserName/ct_icp/.cmake-build-superbuild/MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild-build/viz3d/src/viz3d-build/CMakeFiles/CMakeOutput.log".
make[5]: *** [CMakeFiles/viz3d.dir/build.make:113: viz3d/src/viz3d-stamp/viz3d-build] Error 1
make[4]: *** [CMakeFiles/Makefile2:124: CMakeFiles/viz3d.dir/all] Error 2
make[3]: *** [Makefile:130: all] Error 2
make[2]: *** [CMakeFiles/MappingResearchKEU_superbuild.dir/build.make:112: MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild-stamp/MappingResearchKEU_superbuild-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/MappingResearchKEU_superbuild.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Have you found a way to deal with the glog problem?
Moving from Gcc 9.4.0 to gcc 11.1.0 solved the glog problem, I still have more but its a step forward I guess. You can check issue 67 to check where I get stuck now
Thank you for sharing your advanced work. I met an issue during step1. It seems that the installed
glog
in my system conflicts with theglog
linked by superbuild.Environment
System ROS GCC Cmake Ubuntu 20.04 noetic 9.4.0 3.25.0
Issue
Issue appeared when using command
cmake --build . --config Release
in Step 1 Output (part)[ 36%] Linking CXX shared library libglog.so /usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: 最后的链结失败: bad value collect2: error: ld returned 1 exit status make[8]: *** [CMakeFiles/glog.dir/build.make:194:libglog.so.0.5.0] 错误 1 make[7]: *** [CMakeFiles/Makefile2:853:CMakeFiles/glog.dir/all] 错误 2 make[6]: *** [Makefile:166:all] 错误 2 make[5]: *** [CMakeFiles/glog.dir/build.make:86:glog/src/glog-stamp/glog-build] 错误 2 make[4]: *** [CMakeFiles/Makefile2:154:CMakeFiles/glog.dir/all] 错误 2 make[3]: *** [Makefile:136:all] 错误 2 make[2]: *** [CMakeFiles/MappingResearchKEU_superbuild.dir/build.make:86:MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild-stamp/MappingResearchKEU_superbuild-build] 错误 2 make[1]: *** [CMakeFiles/Makefile2:83:CMakeFiles/MappingResearchKEU_superbuild.dir/all] 错误 2 make: *** [Makefile:91:all] 错误 2
Possible Cause
Conflict between
glog
andgflags
. Maybe superbuild links one using its static library while links the other using its dynamic library.
You could also maybe try to build glog without gflags,
(See the CMakeLists.txt from gflags:
https://github.com/google/glog/blob/674283420118bb919f83ceb3d9dee31ef43ff3aa/CMakeLists.txt#L40 )
And set -DWITH_GFLAGS=OFF in the relevant script
I appreciate the replies from @pierdell and @fratopa. I have solved this problem in a manual way.
First, add -DWITH_GFLAGS=OFF
config in .cmake-build-superbuild/MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild/CMakeLists.txt does fix the bug in the Step 1, but the same bug emegered at my step 2. To fix it, we need to manually change the static link files to the dynamic ones in link.txt
.
mkdir cmake-build-release && cd cmake-build-release
cmake .. -DCMAKE_BUILD_TYPE=Release
link.txt
files.SlamCore
:
cd /path/to/root/
cd cmake-build-release/src/ct_icp/CMakeFiles/CT_ICP.dir
gedit link.txt
Then, substitute each libglog.a
with libglog.so
.
ct_icp
:
cd /path/to/root/
cd cmake-build-release/src/ct_icp/CMakeFiles/CT_ICP.dir
gedit link.txt
Then, substitute each libgflas.a
with libgflags.so
.
cmake --build . --target install --config Release -j 12
...
-- Up-to-date: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/include/SlamCore/cereal.h
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/target_utils.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/utils.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/test_utils.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/includes.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/project_config.cmake.in
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/install_utils.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/viz3d_utils.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/superbuild_utils.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/external.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib/cmake/cmake/flags.cmake
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/test/all_tests
-- Set runtime path of "/home/bit/CODE/Drivers/ct_icp/install/CT_ICP/test/all_tests" to ":/usr/local/lib:/usr/local/lib:/home/bit/CODE/Drivers/ct_icp/install/yaml-cpp/lib:/home/bit/CODE/Drivers/ct_icp/install/tinyply/lib:/home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib:/home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib:/usr/local/lib:/usr/local/cuda-11.1/lib64"
-- Installing: /home/bit/CODE/Drivers/ct_icp/install/CT_ICP/bin/run_odometry
-- Set runtime path of "/home/bit/CODE/Drivers/ct_icp/install/CT_ICP/bin/run_odometry" to ":/usr/local/lib:/usr/local/lib:/home/bit/CODE/Drivers/ct_icp/install/yaml-cpp/lib:/home/bit/CODE/Drivers/ct_icp/install/tinyply/lib:/home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib:/home/bit/CODE/Drivers/ct_icp/install/CT_ICP/lib:/usr/local/cuda-11.1/lib64:/usr/local/lib"
Thank you for sharing your advanced work. I met an issue during step1. It seems that the installed
glog
in my system conflicts with theglog
linked by superbuild.Environment
Issue
Issue appeared when using command
cmake --build . --config Release
in Step 1 Output (part)Possible Cause
Conflict between
glog
andgflags
. Maybe superbuild links one using its static library while links the other using its dynamic library.