13. Conversions

博客介绍了C语言中的类型转换,包括隐式转换和显式转换。如从int到long是隐式转换,表达式可直接处理;从long到int则是显式转换,需显式强制类型转换。此外,语言本身定义了部分转换,程序也可自定义转换。
13. Conversions
explicit, and this determines whether an explicit cast is required.
[Example: For instance, the conversion
from type int to type long is implicit, so expressions of type int can
implicitly be treated as type long.
The opposite conversion, from type long to type int, is explicit and so an
explicit cast is required.
int a = 123;
long b = a; // implicit conversion from int to long
int c = (int) b; // explicit conversion from long to int
end example] Some conversions are defined by the language. Programs may
also define their own
conversions (§13.4).
Starting >>> mav_planning_msgs Finished <<< mav_planning_msgs [ 22.5 seconds ] Starting >>> rotors_control _______________________________________________________________________________ Warnings << rotors_control:cmake /home/ishtar/mbplanner_ws/logs/rotors_control/build.cmake.000.log CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message): catkin_package() DEPENDS on 'Eigen3' but neither 'Eigen3_INCLUDE_DIRS' nor 'Eigen3_LIBRARIES' is defined. Call Stack (most recent call first): /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package) CMakeLists.txt:17 (catkin_package) cd /home/ishtar/mbplanner_ws/build/rotors_control; catkin build --get-env rotors_control | catkin env -si /usr/bin/cmake /home/ishtar/mbplanner_ws/src/sim/rotors_simulator/rotors_control --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/ishtar/mbplanner_ws/devel/.private/rotors_control -DCMAKE_INSTALL_PREFIX=/home/ishtar/mbplanner_ws/install -DCMAKE_BUILD_TYPE=Release; cd - ............................................................................... Finished <<< rotors_control [ 1 minute and 8.0 seconds ] Starting >>> rotors_joy_interface Finished <<< rotors_joy_interface [ 11.4 seconds ] Starting >>> mbplanner_ui Finished <<< mbplanner_ui [ 0.5 seconds ] Starting >>> planner_control_interface Finished <<< planner_control_interface [ 19.2 seconds ] Starting >>> glog_catkin Finished <<< glog_catkin [ 0.3 seconds ] Starting >>> rotors_gazebo_plugins _______________________________________________________________________________ Errors << rotors_gazebo_plugins:cmake /home/ishtar/mbplanner_ws/logs/rotors_gazebo_plugins/build.cmake.000.log CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "octomap_ros" with any of the following names: octomap_rosConfig.cmake octomap_ros-config.cmake Add the installation prefix of "octomap_ros" to CMAKE_PREFIX_PATH or set "octomap_ros_DIR" to a directory containing one of the above files. If "octomap_ros" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): CMakeLists.txt:98 (find_package) cd /home/ishtar/mbplanner_ws/build/rotors_gazebo_plugins; catkin build --get-env rotors_gazebo_plugins | catkin env -si /usr/bin/cmake /home/ishtar/mbplanner_ws/src/sim/rotors_simulator/rotors_gazebo_plugins --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/ishtar/mbplanner_ws/devel/.private/rotors_gazebo_plugins -DCMAKE_INSTALL_PREFIX=/home/ishtar/mbplanner_ws/install -DCMAKE_BUILD_TYPE=Release; cd - ............................................................................... Failed << rotors_gazebo_plugins:cmake [ Exited with code 1 ] Failed <<< rotors_gazebo_plugins [ 4.9 seconds ] Abandoned <<< pci_mav [ Unrelated job failed ] Abandoned <<< eigen_checks [ Unrelated job failed ] Abandoned <<< minkindr [ Unrelated job failed ] Abandoned <<< minkindr_conversions [ Unrelated job failed ] Abandoned <<< rotors_gazebo [ Unrelated job failed ] Abandoned <<< volumetric_map_base [ Unrelated job failed ] Abandoned <<< octomap_world [ Unrelated job failed ] Abandoned <<< voxblox [ Unrelated job failed ] Abandoned <<< voxblox_rviz_plugin [ Unrelated job failed ] Abandoned <<< voxblox_ros [ Unrelated job failed ] Abandoned <<< planner_common [ Unrelated job failed ] Abandoned <<< global_planner [ Unrelated job failed ] Abandoned <<< mbplanner [ Unrelated job failed ] [build - 03:35.9] [24/38 complete] [2/2 jobs] [0 queued] [1 failed] [yaml_cpp_catkin:make (48%) - 03:25.1] [build - 03:36.0] [24/38 complete] [2/2 jobs] [0 queued] [1 failed] [yaml_cpp_catkin:make (48%) - 03:25.2] [build - 03:36.1] [24/38 complete] [2/2 jobs] [0 queued] [1 failed] [yaml_cpp_catkin:make (48%) - 03:25.3] [build - 03:47.4] [build - 03:47.5] [24/38 complete] [[build[build - 03:47.7] [build[build - 03:47.9] [24/38 compl[build - 03:48.0] [24/38 complete] [2/2 jobs] [0[build - 03:48.2] [build[build[build - 03:[build[build[build[build[build[build[build[build - 03:[build - 04:16.9] [24/38 complete] [2/2 jobs] [0 queued] [1 failed] [yaml_cpp_[build - 04:20.1] [24/38 complete] [2/2 jobs]__________________________________________________________________________________________________________________________ Warnings << yaml_cpp_catkin:make /home/ishtar/mbplanner_ws/logs/yaml_cpp_catkin/build.make.001.log 正克隆到 'yaml_cpp_src'... 注意:正在检出 '11607eb5bf1258641d80f7051e7cf09e317b4746'。 您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以通过另外 的检出分支操作丢弃在这个状态下所做的任何提交。 如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在检出命令添加 参数 -b 来实现(现在或稍后)。例如: git checkout -b <新分支名> HEAD 目前位于 11607eb fix some warnings in public headers (#486) CMake Deprecation Warning at CMakeLists.txt:9 (cmake_policy): The OLD behavior for policy CMP0012 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. CMake Deprecation Warning at CMakeLists.txt:13 (cmake_policy): The OLD behavior for policy CMP0015 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. In file included from /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/integration/handler_test.cpp:2:0: /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:839:13: warning: ‘{anonymous}::ex8_22’ defined but not used [-Wunused-variable] const char *ex8_22 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:831:13: warning: ‘{anonymous}::ex8_21’ defined but not used [-Wunused-variable] const char *ex8_21 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:823:13: warning: ‘{anonymous}::ex8_20’ defined but not used [-Wunused-variable] const char *ex8_20 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:818:13: warning: ‘{anonymous}::ex8_19’ defined but not used [-Wunused-variable] const char *ex8_19 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:812:13: warning: ‘{anonymous}::ex8_18’ defined but not used [-Wunused-variable] const char *ex8_18 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:805:13: warning: ‘{anonymous}::ex8_17’ defined but not used [-Wunused-variable] const char *ex8_17 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:801:13: warning: ‘{anonymous}::ex8_16’ defined but not used [-Wunused-variable] const char *ex8_16 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:793:13: warning: ‘{anonymous}::ex8_15’ defined but not used [-Wunused-variable] const char *ex8_15 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:788:13: warning: ‘{anonymous}::ex8_14’ defined but not used [-Wunused-variable] const char *ex8_14 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:760:13: warning: ‘{anonymous}::ex8_9’ defined but not used [-Wunused-variable] const char *ex8_9 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:749:13: warning: ‘{anonymous}::ex8_8’ defined but not used [-Wunused-variable] const char *ex8_8 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:743:13: warning: ‘{anonymous}::ex8_7’ defined but not used [-Wunused-variable] const char *ex8_7 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:735:13: warning: ‘{anonymous}::ex8_6’ defined but not used [-Wunused-variable] const char *ex8_6 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:714:13: warning: ‘{anonymous}::ex8_5’ defined but not used [-Wunused-variable] const char *ex8_5 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:706:13: warning: ‘{anonymous}::ex8_4’ defined but not used [-Wunused-variable] const char *ex8_4 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:702:13: warning: ‘{anonymous}::ex8_3c’ defined but not used [-Wunused-variable] const char *ex8_3c = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:697:13: warning: ‘{anonymous}::ex8_3b’ defined but not used [-Wunused-variable] const char *ex8_3b = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:692:13: warning: ‘{anonymous}::ex8_3a’ defined but not used [-Wunused-variable] const char *ex8_3a = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:679:13: warning: ‘{anonymous}::ex8_2’ defined but not used [-Wunused-variable] const char *ex8_2 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:668:13: warning: ‘{anonymous}::ex8_1’ defined but not used [-Wunused-variable] const char *ex8_1 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:661:13: warning: ‘{anonymous}::ex7_24’ defined but not used [-Wunused-variable] const char *ex7_24 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:654:13: warning: ‘{anonymous}::ex7_23’ defined but not used [-Wunused-variable] const char *ex7_23 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:649:13: warning: ‘{anonymous}::ex7_22’ defined but not used [-Wunused-variable] const char *ex7_22 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:644:13: warning: ‘{anonymous}::ex7_21’ defined but not used [-Wunused-variable] const char *ex7_21 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:638:13: warning: ‘{anonymous}::ex7_20’ defined but not used [-Wunused-variable] const char *ex7_20 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:633:13: warning: ‘{anonymous}::ex7_19’ defined but not used [-Wunused-variable] const char *ex7_19 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:626:13: warning: ‘{anonymous}::ex7_18’ defined but not used [-Wunused-variable] const char *ex7_18 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:618:13: warning: ‘{anonymous}::ex7_17’ defined but not used [-Wunused-variable] const char *ex7_17 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:611:13: warning: ‘{anonymous}::ex7_16’ defined but not used [-Wunused-variable] const char *ex7_16 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:607:13: warning: ‘{anonymous}::ex7_15’ defined but not used [-Wunused-variable] const char *ex7_15 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:597:13: warning: ‘{anonymous}::ex7_14’ defined but not used [-Wunused-variable] const char *ex7_14 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:593:13: warning: ‘{anonymous}::ex7_13’ defined but not used [-Wunused-variable] const char *ex7_13 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:587:13: warning: ‘{anonymous}::ex7_12’ defined but not used [-Wunused-variable] const char *ex7_12 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:582:13: warning: ‘{anonymous}::ex7_11’ defined but not used [-Wunused-variable] const char *ex7_11 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:568:13: warning: ‘{anonymous}::ex7_10’ defined but not used [-Wunused-variable] const char *ex7_10 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:562:13: warning: ‘{anonymous}::ex7_9’ defined but not used [-Wunused-variable] const char *ex7_9 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:557:13: warning: ‘{anonymous}::ex7_8’ defined but not used [-Wunused-variable] const char *ex7_8 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:555:13: warning: ‘{anonymous}::ex7_7’ defined but not used [-Wunused-variable] const char *ex7_7 = " 'here''s to \"quotes\"'"; ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:549:13: warning: ‘{anonymous}::ex7_6’ defined but not used [-Wunused-variable] const char *ex7_6 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:542:13: warning: ‘{anonymous}::ex7_5’ defined but not used [-Wunused-variable] const char *ex7_5 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:537:13: warning: ‘{anonymous}::ex7_4’ defined but not used [-Wunused-variable] const char *ex7_4 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:531:13: warning: ‘{anonymous}::ex7_3’ defined but not used [-Wunused-variable] const char *ex7_3 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:525:13: warning: ‘{anonymous}::ex7_2’ defined but not used [-Wunused-variable] const char *ex7_2 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:519:13: warning: ‘{anonymous}::ex7_1’ defined but not used [-Wunused-variable] const char *ex7_1 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:515:13: warning: ‘{anonymous}::ex6_29’ defined but not used [-Wunused-variable] const char *ex6_29 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:509:13: warning: ‘{anonymous}::ex6_28’ defined but not used [-Wunused-variable] const char *ex6_28 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:504:13: warning: ‘{anonymous}::ex6_27b’ defined but not used [-Wunused-variable] const char *ex6_27b = ^~~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:499:13: warning: ‘{anonymous}::ex6_27a’ defined but not used [-Wunused-variable] const char *ex6_27a = ^~~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:492:13: warning: ‘{anonymous}::ex6_26’ defined but not used [-Wunused-variable] const char *ex6_26 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:488:13: warning: ‘{anonymous}::ex6_25’ defined but not used [-Wunused-variable] const char *ex6_25 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:484:13: warning: ‘{anonymous}::ex6_24’ defined but not used [-Wunused-variable] const char *ex6_24 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:479:13: warning: ‘{anonymous}::ex6_23’ defined but not used [-Wunused-variable] const char *ex6_23 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:474:13: warning: ‘{anonymous}::ex6_22’ defined but not used [-Wunused-variable] const char *ex6_22 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:465:13: warning: ‘{anonymous}::ex6_21’ defined but not used [-Wunused-variable] const char *ex6_21 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:460:13: warning: ‘{anonymous}::ex6_20’ defined but not used [-Wunused-variable] const char *ex6_20 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:455:13: warning: ‘{anonymous}::ex6_19’ defined but not used [-Wunused-variable] const char *ex6_19 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:446:13: warning: ‘{anonymous}::ex6_18’ defined but not used [-Wunused-variable] const char *ex6_18 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:441:13: warning: ‘{anonymous}::ex6_17’ defined but not used [-Wunused-variable] const char *ex6_17 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:436:13: warning: ‘{anonymous}::ex6_16’ defined but not used [-Wunused-variable] const char *ex6_16 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:431:13: warning: ‘{anonymous}::ex6_15’ defined but not used [-Wunused-variable] const char *ex6_15 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:425:13: warning: ‘{anonymous}::ex6_14’ defined but not used [-Wunused-variable] const char *ex6_14 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:420:13: warning: ‘{anonymous}::ex6_13’ defined but not used [-Wunused-variable] const char *ex6_13 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:412:13: warning: ‘{anonymous}::ex6_12’ defined but not used [-Wunused-variable] const char *ex6_12 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:406:13: warning: ‘{anonymous}::ex6_11’ defined but not used [-Wunused-variable] const char *ex6_11 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:401:13: warning: ‘{anonymous}::ex6_10’ defined but not used [-Wunused-variable] const char *ex6_10 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:397:13: warning: ‘{anonymous}::ex6_9’ defined but not used [-Wunused-variable] const char *ex6_9 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:388:13: warning: ‘{anonymous}::ex6_8’ defined but not used [-Wunused-variable] const char *ex6_8 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:380:13: warning: ‘{anonymous}::ex6_7’ defined but not used [-Wunused-variable] const char *ex6_7 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:371:13: warning: ‘{anonymous}::ex6_6’ defined but not used [-Wunused-variable] const char *ex6_6 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:362:13: warning: ‘{anonymous}::ex6_5’ defined but not used [-Wunused-variable] const char *ex6_5 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:353:13: warning: ‘{anonymous}::ex6_4’ defined but not used [-Wunused-variable] const char *ex6_4 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:348:13: warning: ‘{anonymous}::ex6_3’ defined but not used [-Wunused-variable] const char *ex6_3 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:342:13: warning: ‘{anonymous}::ex6_2’ defined but not used [-Wunused-variable] const char *ex6_2 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:328:13: warning: ‘{anonymous}::ex6_1’ defined but not used [-Wunused-variable] const char *ex6_1 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:323:13: warning: ‘{anonymous}::ex5_14’ defined but not used [-Wunused-variable] const char *ex5_14 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:316:13: warning: ‘{anonymous}::ex5_13’ defined but not used [-Wunused-variable] const char *ex5_13 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:308:13: warning: ‘{anonymous}::ex5_12’ defined but not used [-Wunused-variable] const char *ex5_12 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:303:13: warning: ‘{anonymous}::ex5_11’ defined but not used [-Wunused-variable] const char *ex5_11 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:296:13: warning: ‘{anonymous}::ex5_8’ defined but not used [-Wunused-variable] const char *ex5_8 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:288:13: warning: ‘{anonymous}::ex5_7’ defined but not used [-Wunused-variable] const char *ex5_7 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:284:13: warning: ‘{anonymous}::ex5_6’ defined but not used [-Wunused-variable] const char *ex5_6 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:282:13: warning: ‘{anonymous}::ex5_5’ defined but not used [-Wunused-variable] const char *ex5_5 = "# Comment only."; ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:278:13: warning: ‘{anonymous}::ex5_4’ defined but not used [-Wunused-variable] const char *ex5_4 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:269:13: warning: ‘{anonymous}::ex5_3’ defined but not used [-Wunused-variable] const char *ex5_3 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:239:13: warning: ‘{anonymous}::ex2_28’ defined but not used [-Wunused-variable] const char *ex2_28 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:208:13: warning: ‘{anonymous}::ex2_27’ defined but not used [-Wunused-variable] const char *ex2_27 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:199:13: warning: ‘{anonymous}::ex2_26’ defined but not used [-Wunused-variable] const char *ex2_26 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:190:13: warning: ‘{anonymous}::ex2_25’ defined but not used [-Wunused-variable] const char *ex2_25 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:174:13: warning: ‘{anonymous}::ex2_24’ defined but not used [-Wunused-variable] const char *ex2_24 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:159:13: warning: ‘{anonymous}::ex2_23’ defined but not used [-Wunused-variable] const char *ex2_23 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:149:13: warning: ‘{anonymous}::ex2_18’ defined but not used [-Wunused-variable] const char *ex2_18 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:140:13: warning: ‘{anonymous}::ex2_17’ defined but not used [-Wunused-variable] const char *ex2_17 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:131:13: warning: ‘{anonymous}::ex2_16’ defined but not used [-Wunused-variable] const char *ex2_16 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:121:13: warning: ‘{anonymous}::ex2_15’ defined but not used [-Wunused-variable] const char *ex2_15 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:115:13: warning: ‘{anonymous}::ex2_14’ defined but not used [-Wunused-variable] const char *ex2_14 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:109:13: warning: ‘{anonymous}::ex2_13’ defined but not used [-Wunused-variable] const char *ex2_13 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:99:13: warning: ‘{anonymous}::ex2_12’ defined but not used [-Wunused-variable] const char *ex2_12 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:88:13: warning: ‘{anonymous}::ex2_11’ defined but not used [-Wunused-variable] const char *ex2_11 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:78:13: warning: ‘{anonymous}::ex2_10’ defined but not used [-Wunused-variable] const char *ex2_10 = ^~~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:68:13: warning: ‘{anonymous}::ex2_9’ defined but not used [-Wunused-variable] const char *ex2_9 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:56:13: warning: ‘{anonymous}::ex2_8’ defined but not used [-Wunused-variable] const char *ex2_8 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:44:13: warning: ‘{anonymous}::ex2_7’ defined but not used [-Wunused-variable] const char *ex2_7 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:37:13: warning: ‘{anonymous}::ex2_6’ defined but not used [-Wunused-variable] const char *ex2_6 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:32:13: warning: ‘{anonymous}::ex2_5’ defined but not used [-Wunused-variable] const char *ex2_5 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:22:13: warning: ‘{anonymous}::ex2_4’ defined but not used [-Wunused-variable] const char *ex2_4 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:12:13: warning: ‘{anonymous}::ex2_3’ defined but not used [-Wunused-variable] const char *ex2_3 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:7:13: warning: ‘{anonymous}::ex2_2’ defined but not used [-Wunused-variable] const char *ex2_2 = ^~~~~ /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin/yaml_cpp_src-prefix/src/yaml_cpp_src/test/specexamples.h:2:13: warning: ‘{anonymous}::ex2_1’ defined but not used [-Wunused-variable] const char *ex2_1 = ^~~~~ cc1plus: warning: unrecognized command line option ‘-Wno-c99-extensions’ cd /home/ishtar/mbplanner_ws/build/yaml_cpp_catkin; catkin build --get-env yaml_cpp_catkin | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd - .......................................................................................................................... Finished <<< yaml_cpp_catkin [ 4 minutes and 48.2 seconds ] [build] Summary: 24 of 38 packages succeeded. [build] Ignored: 4 packages were skipped or are blacklisted. [build] Warnings: 2 packages succeeded with warnings. [build] Abandoned: 13 packages were abandoned. [build] Failed: 1 packages failed. [build] Runtime: 4 minutes and 59.0 seconds total. [build] Note: Workspace packages have changed, please re-source setup files to use them. ishtar@ubuntu:~/mbplanner_ws$ 分析原因
最新发布
07-09
<think>我们正在解决ROS构建过程中出现的CMake错误,具体是找不到octomap_ros的包配置文件,以及处理octomap_ros和Eigen3的依赖问题。 根据用户的问题,错误信息可能是: Could not find a package configuration file provided by "octomap_ros" with any of the following names: octomap_rosConfig.cmake octomap_ros-config.cmake 同时,可能还涉及Eigen3的问题。 解决思路: 1. 确保octomap_ros已经正确安装。 2. 检查octomap_ros的安装路径是否在CMake的搜索路径中。 3. 确保Eigen3被正确安装和配置。 步骤: 一、安装octomap_ros 如果尚未安装,可以使用apt安装(假设是Ubuntu和ROS版本为Melodic或Noetic): sudo apt-get install ros-<distro>-octomap-ros 其中<distro>替换为ROS发行版名称,如melodic或noetic。 二、在catkin工作空间中重新安装或编译octomap_ros 如果已经安装但问题仍然存在,可能是因为安装路径不在CMake的搜索路径中,或者catkin工作空间没有正确source环境。 可以尝试在catkin工作空间中从源码编译octomap_ros: 1. 进入catkin工作空间的src目录 2. 克隆octomap_ros的源码(注意选择与ROS版本匹配的分支) git clone -b <distro>-devel https://github.com/OctoMap/octomap_ros.git 3. 返回工作空间根目录,运行catkin_make 三、处理Eigen3依赖 octomap_ros依赖于Eigen3。确保Eigen3已安装: sudo apt-get install libeigen3-dev 注意:ROS中通常使用Eigen3,但有时可能会出现版本冲突。如果已经安装了Eigen3,但仍然出现找不到Eigen3的情况,可能是因为CMakeLists.txt中查找Eigen3的方式不对。 在CMakeLists.txt中,应该使用: find_package(Eigen3 REQUIRED) include_directories(${EIGEN3_INCLUDE_DIRS}) 或者,如果使用catkin,可以添加: find_package(catkin REQUIRED COMPONENTS ... eigen_conversions ...) 另外,octomap_ros可能要求特定版本的Eigen3,请确保安装的版本符合要求。 四、设置环境变量 在编译之前,确保已经source了setup.bash文件: source /opt/ros/<distro>/setup.bash source devel/setup.bash 五、如果问题仍然存在,可以尝试手动指定octomap_ROS_DIR 在CMakeLists.txt中,在find_package(octomap_ros REQUIRED)之前,设置octomap_ROS_DIR变量: set(octomap_ROS_DIR "/opt/ros/<distro>/share/octomap_ros") 或者通过命令行传递: catkin_make -Doctomap_ROS_DIR=/opt/ros/<distro>/share/octomap_ros 六、检查package.xml 在项目的package.xml中,确保已经声明了对octomap_ros的依赖: <build_depend>octomap_ros</build_depend> <exec_depend>octomap_ros</exec_depend> 七、如果以上步骤都不能解决问题,可能需要检查octomap_ros的安装是否完整,或者考虑重新安装ROS。 注意:以上步骤需要根据具体的ROS发行版和系统环境进行调整。 根据参考引用[^1]中关于find_package的说明,我们可以理解CMake在查找包时的行为。因此,确保octomap_ros的配置文件存在于某个被搜索的路径中。 相关问题: 1. 如何检查CMake的包搜索路径? 2. 如何手动指定CMake的包搜索路径? 3. 如何解决ROS包之间的依赖冲突?</think>### 解决ROS构建中octomap_ros和Eigen3的CMake依赖问题 #### 问题分析 当出现`Could not find package configuration file provided by octomap_ros`错误时,通常由以下原因导致: 1. **octomap_ros未安装**:ROS包未正确安装或版本不匹配 2. **Eigen3路径冲突**:系统存在多个Eigen版本(ROS自带/系统安装) 3. **环境变量缺失**:`CMAKE_PREFIX_PATH`未包含必要路径 4. **依赖声明缺失**:`package.xml`或`CMakeLists.txt`配置错误 --- #### 解决方法 ##### 步骤1:安装缺失依赖 ```bash # 安装octomap_ros(替换<distro>为ROS版本,如noetic) sudo apt install ros-<distro>-octomap-ros # 安装Eigen3(推荐源码安装避免冲突) wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz tar -xzvf eigen-3.4.0.tar.gz cd eigen-3.4.0 && mkdir build && cd build cmake .. && sudo make install ``` ##### 步骤2:配置CMake环境 在`CMakeLists.txt`中添加: ```cmake # 强制指定Eigen3路径 set(Eigen3_DIR /usr/local/share/eigen3/cmake) # 根据实际安装路径修改 # 显式声明octomap依赖 find_package(octomap REQUIRED) find_package(octomap_ros REQUIRED) # 必须在catkin_package()前调用 ``` ##### 步骤3:更新package.xml ```xml <depend>octomap_ros</depend> <depend>eigen</depend> ``` ##### 步骤4:设置环境变量 ```bash # 在~/.bashrc末尾添加 export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/opt/ros/<distro>/share source ~/.bashrc ``` ##### 步骤5:验证安装路径 ```bash # 检查octomap_ros配置是否存在 ls /opt/ros/<distro>/share/octomap_ros/cmake # 检查Eigen3版本 pkg-config --modversion eigen3 ``` --- #### 常见问题排查 1. **多版本冲突**: ```bash sudo apt remove libeigen3-dev # 移除系统自带Eigen ``` 2. **构建缓存问题**: ```bash cd ~/catkin_ws rm -rf devel build catkin_make clean catkin_make ``` 3. **手动指定路径**(临时方案): ```bash catkin_make -DCMAKE_PREFIX_PATH="/opt/ros/<distro>;/usr/local" ``` --- #### 原理说明 - `find_package()`会查找`<PackageName>Config.cmake`文件[^1] - ROS包安装后会在`/opt/ros/<distro>/share`生成配置文件 - Eigen3需通过`Eigen3_DIR`显式指定路径,避免与ROS内置版本冲突 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值