"(base) xdh@Pc:~/SLAM/iscloam_ws$ catkin_make",当我编译的时候有以下错误产生这是为什么
`Base path: /home/xdh/SLAM/iscloam_ws
Source space: /home/xdh/SLAM/iscloam_ws/src
Build space: /home/xdh/SLAM/iscloam_ws/build
Devel space: /home/xdh/SLAM/iscloam_ws/devel
Install space: /home/xdh/SLAM/iscloam_ws/install
Running command: "make cmake_check_build_system" in "/home/xdh/SLAM/iscloam_ws/build"
Running command: "make -j8 -l8" in "/home/xdh/SLAM/iscloam_ws/build"
[ 0%] Built target std_msgs_generate_messages_lisp
[ 0%] Built target std_msgs_generate_messages_cpp
[ 0%] Built target std_msgs_generate_messages_py
Scanning dependencies of target iscloam_odom_estimation_node
[ 0%] Built target std_msgs_generate_messages_nodejs
[ 0%] Built target std_msgs_generate_messages_eus
[ 13%] Built target iscloam_laser_mapping_node
[ 27%] Built target iscloam_laser_processing_node
[ 37%] Building CXX object iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationClass.cpp.o
[ 37%] Building CXX object iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/lidarOptimization.cpp.o
[ 37%] Building CXX object iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationNode.cpp.o
[ 37%] Built target _iscloam_generate_messages_check_deps_LoopInfo
[ 44%] Built target iscloam_generate_messages_py
[ 48%] Built target iscloam_generate_messages_cpp
[ 55%] Built target iscloam_generate_messages_eus
[ 58%] Built target iscloam_generate_messages_nodejs
[ 62%] Built target iscloam_generate_messages_lisp
Scanning dependencies of target iscloam_isc_optimization_node
[ 62%] Built target iscloam_generate_messages
[ 75%] Built target iscloam_isc_generation_node
[ 79%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/lidar.cpp.o
[ 82%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationNode.cpp.o
[ 86%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationClass.cpp.o
[ 89%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/lidarOptimization.cpp.o
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/lidarOptimization.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/lidarOptimization.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
make[2]: *** [iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/build.make:76:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/lidarOptimization.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
make[2]: *** [iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/build.make:89:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/lidarOptimization.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/odomEstimationClass.h:34,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp: In member function ‘void OdomEstimationClass::updatePointsToMap(const Ptr&, const Ptr&)’:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp:57:83: error: no matching function for call to ‘ceres::Problem::AddParameterBlock(double [7], int, PoseSE3Parameterization)’
57 | problem.AddParameterBlock(parameters, 7, new PoseSE3Parameterization());
| ^
In file included from /usr/local/include/ceres/ceres.h:64,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/odomEstimationClass.h:25,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp:5:
/usr/local/include/ceres/problem.h:259:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double, int)’
259 | void AddParameterBlock(double* values, int size);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:259:8: note: candidate expects 2 arguments, 3 provided
/usr/local/include/ceres/problem.h:271:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double*, int, ceres::Manifold*)’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:271:62: note: no known conversion for argument 3 from ‘PoseSE3Parameterization*’ to ‘ceres::Manifold*’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ~~~~~~~~~~^~~~~~~~
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/odomEstimationClass.h:34,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationNode.cpp:27:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:45,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
make[2]: *** [iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/build.make:63:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationNode.cpp.o] 错误 1
In file included from /opt/ros/noetic/include/ros/ros.h:40,
from /opt/ros/noetic/include/pcl_ros/point_cloud.h:4,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:19,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp: In member function ‘bool ISCOptimizationClass::addPoseToGraph(const Ptr&, const Ptr&, std::vector&, Eigen::Isometry3d&)’:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:82:30: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘std::vector<boost::shared_ptr<pcl::PointCloudpcl::PointXYZI > >::size_type’ {aka ‘long unsigned int’} [-Wformat=]
82 | ROS_WARN("global optimization finished%d,%d with tranform %f,%f,%f, [%f,%f,%f,%f]",pointcloud_edge_arr.size()-1, matched_frame_id[i],loop_temp.translation().x(),loop_temp.translation().y(),loop_temp.translation().z(),loop_temp.rotation().toQuaternion().w(),loop_temp.rotation().toQuaternion().x(),loop_temp.rotation().toQuaternion().y(),loop_temp.rotation().toQuaternion().z());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| std::vector<boost::shared_ptr<pcl::PointCloudpcl::PointXYZI > >::size_type {aka long unsigned int}
/opt/ros/noetic/include/ros/console.h:351:165: note: in definition of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
351 | ::ros::console::print(filter, _rosconsole_define_location__loc.logger, _rosconsole_define_location__loc.level, FILE, LINE, ROSCONSOLE_FUNCTION, VA_ARGS)
| ^~~~~~~~~~~
/opt/ros/noetic/include/ros/console.h:390:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
390 | ROSCONSOLE_PRINT_AT_LOCATION(VA_ARGS);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/ros/noetic/include/ros/console.h:575:35: note: in expansion of macro ‘ROS_LOG_COND’
575 | #define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, VA_ARGS)
| ^~~~~~~~~~~~
/opt/ros/noetic/include/rosconsole/macros_generated.h:162:23: note: in expansion of macro ‘ROS_LOG’
162 | #define ROS_WARN(...) ROS_LOG(::ros::console::levels::Warn, ROSCONSOLE_DEFAULT_NAME, VA_ARGS)
| ^~~~~~~
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:82:21: note: in expansion of macro ‘ROS_WARN’
82 | ROS_WARN("global optimization finished%d,%d with tranform %f,%f,%f, [%f,%f,%f,%f]",pointcloud_edge_arr.size()-1, matched_frame_id[i],loop_temp.translation().x(),loop_temp.translation().y(),loop_temp.translation().z(),loop_temp.rotation().toQuaternion().w(),loop_temp.rotation().toQuaternion().x(),loop_temp.rotation().toQuaternion().y(),loop_temp.rotation().toQuaternion().z());
| ^~~~~~~~
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:82:60: note: format string is defined here
82 | ROS_WARN("global optimization finished%d,%d with tranform %f,%f,%f, [%f,%f,%f,%f]",pointcloud_edge_arr.size()-1, matched_frame_id[i],loop_temp.translation().x(),loop_temp.translation().y(),loop_temp.translation().z(),loop_temp.rotation().toQuaternion().w(),loop_temp.rotation().toQuaternion().x(),loop_temp.rotation().toQuaternion().y(),loop_temp.rotation().toQuaternion().z());
| ~^
| |
| int
| %ld
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp: In member function ‘double ISCOptimizationClass::estimateOdom(const Ptr&, const Ptr&, const Ptr&, const Ptr&, Eigen::Isometry3d&)’:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:251:79: error: no matching function for call to ‘ceres::Problem::AddParameterBlock(double [7], int, PoseSE3Parameterization*)’
251 | problem.AddParameterBlock(parameters, 7, new PoseSE3Parameterization());
| ^
In file included from /usr/local/include/ceres/ceres.h:64,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:7,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:45,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:5:
/usr/local/include/ceres/problem.h:259:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double*, int)’
259 | void AddParameterBlock(double* values, int size);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:259:8: note: candidate expects 2 arguments, 3 provided
/usr/local/include/ceres/problem.h:271:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double*, int, ceres::Manifold*)’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:271:62: note: no known conversion for argument 3 from ‘PoseSE3Parameterization*’ to ‘ceres::Manifold*’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ~~~~~~~~~~^~~~~~~~
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:45,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationNode.cpp:28:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
make[2]: *** [iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/build.make:102:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationClass.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:573:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
make[2]: *** [iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/build.make:63:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationNode.cpp.o] 错误 1
make[2]: *** [iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/build.make:76:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationClass.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:515:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j8 -l8" failed`**