Ubuntu18.04,ros版本melodic:安装 navigation 包、map-server时,报Could NOT find SDL以及libsdl1.2-dev安装问题

问题描述

在安装雷达相关包sudo apt install ros-melodic-map-serversudo apt install ros-melodic-navigation时候报错:
在这里插入图片描述
显示404 Not Found
从源码安装navigation 包、map-server时,报错:Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
在这里插入图片描述

原因分析:

安装navigation,依赖于map-server;
安装map-server,依赖于libsdl1.2-dev、libsdl-image1.2-dev

解决方案:

但libsdl1.2-dev、libsdl-image1.2-dev,版本太过于老旧,我使用清华源、阿里源等sudo apt-get install
都装不上。
故都从源码安装
1.先安装libsdl1.2-dev:
打开一个命令行:git clone https://github.com/libsdl-org/SDL-1.2.git 默认应该是下载在主目录下:
在这里插入图片描述
如果大家下载不了的话,我这里把需要用的包,放在这里。
链接:https://pan.baidu.com/s/1iqBvr3cFlimN1Rg1AQDx2Q
提取码:706x
解压后进入文件夹,SDL-1.2-main,在文件夹内打开命令行:
分别输入以下代码,进行编译。

./configure
make
sudo make install

安装好的话,应该会显示:
在这里插入图片描述
2.安装libsdl-image1.2-dev:
打开一个命令行:git clone https://github.com/SDL-mirror/SDL_image.git
默认应该是下载在主目录下:
在这里插入图片描述
如果大家下载不了的话,我这里把需要用的包,放在这里。
链接:https://pan.baidu.com/s/1iqBvr3cFlimN1Rg1AQDx2Q
提取码:706x
解压后进入文件夹,SDL-image-SDL-1.2,在文件夹内打开命令行:
分别输入以下代码,进行编译。

./configure
make
sudo make install

安装好的话,应该会显示:
在这里插入图片描述
3.安装navigation 包(map-server含在里面):
打开一个命令行:git clone https://github.com/ros-planning/navigation.git
默认应该是下载在主目录下:

如果大家下载不了的话,我这里把需要用的包,放在这里。
链接:https://pan.baidu.com/s/1iqBvr3cFlimN1Rg1AQDx2Q
提取码:706x

将主目录下的navigation复制到工作空间的src目录下。
强烈建议这里新建一个工作空间
如果要建立工作空间的话:

mkdir -p 自定义空间名称/src   #创建空间
cd 自定义空间名称             #进入空间
catkin_make        	     #初始化

打开一个命令行:

cd 工作空间
source ./devel/setup.bash
catkin_make

此时可能会出现报错:
在这里插入图片描述
在这里插入图片描述
即缺少两个包,那安装即可。
新打开一个命令行:

sudo apt-get install ros-melodic-tf2-sensor-msgs
sudo apt-get install ros-melodic-move-base-mags

两个包都安装完毕后
打开一个命令行:

cd 工作空间
source ./devel/setup.bash
catkin_make

当编译完成后,包就安装好了。
然后把这个工作空间的变量更新放到主目录下的.bashrc文件里
在这里插入图片描述
直接点击或者打开一个命令行:
输入gedit .bashrc
source ~/工作空间/devel/setup.bash加到文件的最后一行。
以后打开任何一个工作空间,navigation 包、map-server都可正常运行了。

猜你喜欢

转载自blog.csdn.net/layra_liu/article/details/125627739