1、只是在cpu状态下不能编译
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
显示colcon未找到命令
解决思路,应该装一个colcon
正常应该是装一个rosdep,命令
rosdep init
rosdep update
rosdep install -y --from-paths src --ignore-src -r
由于网络等原因不方便安装,换一种方法直接自己建立文件夹,将github上的内容复制进来进行保存。
遇见的问题:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
解决办法:
也可以直接梯子装,下面是没有梯子的安装方法。
$ sudo mkdir -p /etc/ros/rosdep/sources.list.d
$ cd /etc/ros/rosdep/sources.list.d
$ sudo gedit 20-default.list
$ 将https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list中的内容复制粘贴到20-default.list中
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list中的内容
# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
随后直接编译命令即可。
2、编译过程中出现的问题:
会出现丢包的状态,然后缺什么包安装什么包
举例问题:
--- stderr: lanelet2_io
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find pugixml (missing: PUGIXML_LIBRARIES PUGIXML_INCLUDE_DIRS)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/home/dog/tinayu_autoware/install/mrt_cmake_modules/share/mrt_cmake_modules/cmake/Modules/Findpugixml.cmake:8 (find_package_handle_standard_args)
/home/dog/tinayu_autoware/install/lanelet2_core/share/lanelet2_core/cmake/lanelet2_coreAutoDepsConfig.cmake:198 (find_package)
/home/dog/tinayu_autoware/install/mrt_cmake_modules/share/mrt_cmake_modules/cmake/Modules/FindAutoDeps.cmake:253 (_find_dep)
CMakeLists.txt:21 (find_package)
---
Failed <<< lanelet2_io [1.62s, exited with code 1]
Aborted <<< lanelet2_maps [1.08s]
Aborted <<< vector_map [1.73s]
Aborted <<< amathutils_lib [1.79s]
Aborted <<< ds4_msgs [0.64s]
Aborted <<< astar_search [1.17s]
Aborted <<< lanelet2_traffic_rules [8.38s]
Aborted <<< autoware_health_checker [13.7s]
Summary: 15 packages finished [17.5s]
1 package failed: lanelet2_io
7 packages aborted: amathutils_lib astar_search autoware_health_checker ds4_msgs lanelet2_maps lanelet2_traffic_rules vector_map
2 packages had stderr output: autoware_health_checker lanelet2_io
147 packages not processed
这个错误信息表明 CMake 在构建 lanelet2_io 时无法找到 pugixml 库,导致构建失败。以下是解决这个问题的步骤:
安装 pugixml: 如果没有安装 pugixml,可以通过以下命令安装:
sudo apt-get install libpugixml-dev
以后的缺什么就按照这样装什么(可使用gpt帮忙操作)。
其余的我自己补全,每个人缺的东西可能不一样:
sudo apt-get install ros-melodic-jsk-recognition-msgs
sudo apt-get install ros-melodic-jsk-recognition-msgs
sudo apt-get install ros-melodic-jsk-rviz-plugins
sudo apt-get install libgeographic-dev
sudo apt-get install ros-melodic-nmea-msgs
sudo apt-get install libglew-dev
sudo apt-get install ros-melodic-nmea-navsat-driver
sudo apt-get install ros-melodic-grid-map-cv
sudo apt-get install ros-melodic-grid-map-msgs
sudo apt-get install ros-melodic-grid-map-ros
sudo apt-get install ros-melodic-automotive-navigation-msgs
sudo apt-get install ros-melodic-automotive-platform-msgs
sudo apt-get install ros-melodic-velodyne-pointcloud
sudo apt-get install ros-melodic-qpoases-vendor