今天在使用ros2的时候,进行编译,colcon build编译之后,出现了下面这两个错误。
CMake Warning at /opt/ros/foxy/share/rcutils/cmake/ament_cmake_export_libraries-extras.cmake:116 (message): Package 'rcutils' exports library 'dl' which couldn't be found
CMake Error at /opt/ros/foxy/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_c-extras.cmake:5 (find_package): Could not find a configuration file for package "fastcdr" that is compatible with requested version "". The following configuration files were considered but not accepted: /opt/ros/foxy/lib/cmake/fastcdr/fastcdr-config.cmake, version: 1.0.13 (64bit)
对于这个问题,我放在了百度上一通搜索,刚开始以为是什么包没安装,所以就开始,卸载包、安装包,以至于重新安装ros2。但是没什么用。
后来我想起来,我这台电脑前几天下载过arm-poky-linux-gnueabi-gcc这个交叉编译器,并且把环境变量也改变了,所以我把环境变量修改一下,换成我之前的交叉编译器,在终端执行以下命令:
export CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
export CXX=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
这两条命令便可以修改交叉编译器的环境了。可以在终端执行env,仔细看会有:
所以,这样就好了。你再开一个终端,重新建工作空间,功能包,再执行colcon build就可以了。
对于这样的问题一开始很蒙,放在百度上,几乎没有人遇见过。幸好在午睡的时候脑子里闪过交叉编译器的事,一下子就解决了。所以大多数人的灵感都是在不经意间产生的。加油!好好学习!早日成为打工人!