记录一下该问题以及找到的解决方案(并且附上报错的图片):
github上的解决方案
你需要删除或者注释在cartographer 包下(不是那个cartographer_ros包)package.xml
文件里的(<depend>libabsl-dev</depend>
) 。并且在src/cartographer/scripts/install_abseil.sh
文件目录下运行install_abseil.sh
这个sh文件来下载abseil安装。这样应该就能解决这个报错问题。具体的话可以参考上面的链接。
存在的问题:
但是在最后catkin_make_isolated
遇到了新的问题还没有解决。问题的报错是
#error “C++ versions less than C++14 are not supported.”
[8/344] Building CXX object CMakeFiles/cartographer.transform.rigid_transform_test.dir/cartographer/transform/rigid_transform_test.cc.o
FAILED: CMakeFiles/cartographer.transform.rigid_transform_test.dir/cartographer/transform/rigid_transform_test.cc.o
/usr/bin/c++ -DGFLAGS_IS_A_DLL=0 -I/home/zstu403/cartographer_ws/src/cartographer/cartographer -isystem /usr/src/googletest/googlemock/include -isystem /usr/include/eigen3 -isystem /home/zstu403/cartographer_ws/src/cartographer -isystem /usr/include/lua5.2 -isystem /usr/local/include -I. --std=c++14 -O3 -DNDEBUG -pthread -fPIC -Wall -Wpedantic -Werror=format-security -Werror=missing-braces -Werror=reorder -Werror=return-type -Werror=switch -Werror=uninitialized -O3 -DNDEBUG -pthread -fPIC -Wall -Wpedantic -Werror=format-security -Werror=missing-braces -Werror=reorder -Werror=return-type -Werror=switch -Werror=uninitialized -O3 -DNDEBUG -std=gnu++11 -MD -MT CMakeFiles/cartographer.transform.rigid_transform_test.dir/cartographer/transform/rigid_transform_test.cc.o -MF CMakeFiles/cartographer.transform.rigid_transform_test.dir/cartographer/transform/rigid_transform_test.cc.o.d -o CMakeFiles/cartographer.transform.rigid_transform_test.dir/cartographer/transform/rigid_transform_test.cc.o -c /home/zstu403/cartographer_ws/src/cartographer/cartographer/transform/rigid_transform_test.cc
In file included from /usr/local/include/absl/base/config.h:86:0,
from /usr/local/include/absl/base/attributes.h:37,
from /usr/local/include/absl/base/macros.h:34,
from /usr/local/include/absl/strings/substitute.h:78,
from /home/zstu403/cartographer_ws/src/cartographer/cartographer/transform/rigid_transform.h:26,
from /home/zstu403/cartographer_ws/src/cartographer/cartographer/transform/rigid_transform_test.cc:16:
/usr/local/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
#error "C++ versions less than C++14 are not supported."
^~~~~
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer':
Command '['ninja', '-j8', '-l8']' returned non-zero exit status 1
Reproduce this error by running:
==> cd /home/zstu403/cartographer_ws/build_isolated/cartographer && ninja -j8 -l8
暂时还没有解决。