Ubuntu Linux基本操作+安装工具+安装ROS+g++编译+Cmake

Ubuntu Linux基本操作+安装工具+安装ROS+g++编译+Cmake

1、进入到根目录

cd /

在这里插入图片描述

2、回到当前工作空间

cd ~

在这里插入图片描述

3、查看目录中的内容

ls

在这里插入图片描述

ll

在这里插入图片描述

4、创建文件夹

mkdir 123

在这里插入图片描述

5、删除文件夹

rm -rf 123/

这里我们在输入要删除的文件夹名时,可以通过按tab键快速补全对应的文件夹名。
按两次tab可查看对应输入名称的所有内容。
在这里插入图片描述

6、创建有连续子目录的文件夹

mkdir -p hh/pp

在这里插入图片描述

7、创建文件

touch hello.txt

在这里插入图片描述

8、打开txt

gedit hello.txt 

在这里插入图片描述
在这里插入图片描述

9、删除文件

rm hello.txt

在这里插入图片描述

10、清空终端内容

clear

在这里插入图片描述
在这里插入图片描述

11、查看自己输入终端的内容

我们可以通过输入history查看自己之前终端输入的内容:

history

在这里插入图片描述

12、下载安装Ubuntu的安装包

这里以下载安装vscode为例
进入https://code.visualstudio.com/
下载Linux x64 .deb 文件,.deb就是Ubuntu对应的安装包。
在这里插入图片描述
在这里插入图片描述
我们在下载好安装包的文件夹中打开终端

dpkg -i code_1.74.2-1671533413_amd64.deb 

但是这样是安装不了的,需要超级管理员权限。
在这里插入图片描述
在命令前添加sudo,管理员。

sudo dpkg -i code_1.74.2-1671533413_amd64.deb 

之后输入密码
在这里插入图片描述
这样就安装好了:
在这里插入图片描述
在这里插入图片描述

13、apt安装工具进行更新

man + 基本命令 就可以查看基本的介绍:

man apt

在这里插入图片描述
首先更新一下apt源

sudo apt update

在这里插入图片描述
这里我们注意到更新的地址是通过Ubuntu的网址进行更新的,但是有时候我们无法登陆Ubuntu的网址进行下载,那么我们就需要更换成国内镜像源网址。
首先点击Software & Update:
在这里插入图片描述
在这里插入图片描述
之后点击下图的那个选择
在这里插入图片描述
在这里插入图片描述
之后点击下拉列表,选择other
在这里插入图片描述
在这里插入图片描述
之后我们选择镜像源网址即可,这里我们选择阿里云的
在这里插入图片描述
之后我们选择好后,关闭即可
在这里插入图片描述
我们在更新一下apt源

sudo apt update

可以注意到源换成了aliyun的了。
在这里插入图片描述
这样就更新了可以下载的软件列表了
在这里插入图片描述

14、apt安装git后克隆

用git工具克隆一些代码
在这里插入图片描述
那么我们就安装git

sudo apt install git

在这里插入图片描述
之后执行git的克隆:

git clone https://github.com/gaoxiang12/slambook2.git

在这里插入图片描述
在这里插入图片描述
我注意到,克隆的文件夹中第三方库是引用别人的形式,我们并没有克隆下来,文件夹是空的。
在这里插入图片描述
在这里插入图片描述
我们为了要将引用的第三课也一并下载下来,我们需要在克隆时添加一些参数。
即添加–recursive 递归,这样就能克隆下来引用的内容了。

git clone --recursive https://github.com/gaoxiang12/slambook2.git

可以注意到子模块的内容也被下载下来了。
在这里插入图片描述
在这里插入图片描述
如果我们发现引用的三方库没有能够成功下载下来,那么我就进行下面的方法:
cd 到 git clone的主目录下,执行下述命令即可。

git submodule update --init --recursive

在这里插入图片描述

15、其他工具

1、htop 相当于windows的任务管理器
sudo apt install htop

在这里插入图片描述
在这里插入图片描述

2、vim 文本编辑工具
vim hello.txt 

在这里插入图片描述
之后点击键盘i,进入insert模式:
在这里插入图片描述
如果要退出该模式,按esc即可。

退出该模式后,我们要保存退出,就需要输入冒号,并输入wq。

:wq

表示写入并退出
在这里插入图片描述

3、terminator超级终端
sudo apt install terminator

安装好后,我们在按快捷键ctrl+alt+t打开的终端就是这个超级终端了。

该终端可以进行分栏,ctrl+shift+e,就可以左右分栏同时操作了。
在这里插入图片描述
按ctrl+shift+o,就可以上下分栏。
在这里插入图片描述
按住alt同时,按方向键,就可以选择栏进行写字了。
在这里插入图片描述

如果要同时操作所有栏,那就alt+a,全选所有栏进行操作,下面是全选后查看列表内容,可以同时对三个栏做ls操作,如果要退出全选,就alt+o退出全选。
在这里插入图片描述
在这里插入图片描述
如果我们要集中在一个分栏中进行输入内容,那么我就需要放大某一个栏,那么我们就输入ctrl+shift+x,就可以放大某一个栏了。如果想要恢复到原来所有分栏的状态,那么就再按一次ctrl+shift+x。
在这里插入图片描述
在这里插入图片描述

16、vscode配置

通过在项目路径中打开终端,输入一下内容,就可以打开vscode.

code .

在这里插入图片描述
之后安装一些C++对应的插件即可。

17、安装ros

首先,这个方法不是我发明的,详细请查看该链接:https://blog.csdn.net/LNSTOP/article/details/126599501

不管你是unbuntu 16\18\20,不管你是新安装的系统,还是ROS装了一部分进行不下去的烂摊子都适用!直接输入下面这一行代码,一键安装!!!!感谢开发这个的大神,向您献上最诚挚的祝福和最崇高的敬意!谢谢!!!

wget http://fishros.com/install -O fishros && . fishros 

我们只需在终端输入上面的代码即可。按照对应选择,自动就能安装好ROS。
在这里插入图片描述

安装好后,我们来做一个简单的测试:
第一个终端:

roscore

第二个终端:

rosrun turtlesim turtlesim_node 

第三个终端:

rosrun turtlesim turtle_teleop_key 

在这里插入图片描述
之后在第三个终端中,注意这里必须是在第三个终端中,我们按键盘的上下左右可以控制小海龟的移动。
在这里插入图片描述
这样我们的ROS就安装成功了。

18、用g++编译

首先我们查看一个.cpp文件,用来简单输出Hello SLAM!
在这里插入图片描述
通过g++对该文件进行编译

g++ helloSLAM.cpp

在这里插入图片描述
可以发现多了一个a.out可执行文件,可执行文件是绿色的。
之后我们执行这个文件。输出Hello SLAM! 内容:
在这里插入图片描述
我还可以通过g++进行编译时,生成其他文件名的可执行程序:

g++ useHello.cpp libHelloSLAM.cpp -o sayhello

在这里插入图片描述
我们可以注意到这个sayhello是没有任何后缀的,但是依然是可以执行的,在Linux中,后缀名只是和文件打开形式有关,比如.txt打开是通过gedit打开,只和打开形式有关,我们可以通过ll查看该文件可以执行的情况,发现sayhello对应的最左侧是-rwxrwxr-x,其中x就是可以执行的。

我们可以改变该文件的执行类型,使得sayhello不能够被执行。

chmod -x sayhello

在这里插入图片描述
我们还可以添加回来

chmod +x sayhello

在这里插入图片描述
我们执行sayhello,输入内容是Hello SLAM。
在这里插入图片描述

19、cmake使用

这里我们注意到,我们只是添加了两个cpp进行编译,真正的工程可是有上百个cpp文件的。因此我们无法通过一行命令将其编译完成。我们需要一个项目管理工具,用来管理文件编译调用时的依赖项复杂的情况。
该工具为cmake,一般如果没有安装ROS是不会安装cmake的。
如果要安装:

sudo apt install cmake

因为我之前安装了ROS。
在这里插入图片描述

1、针对单一文件

我们看一下Cmakelists.txt

# 声明要求的 cmake 最低版本 这里最低版本的限制是可以不要的。
# cmake_minimum_required(VERSION 2.8)

# 声明一个 cmake 工程 这个是必须的。
project(HelloSLAM)

# 设置编译模式 这里的编译模式如果不写默认是release发行模式。
# set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 ) 这里编译后生成的可执行文件名就是helloSLAM
add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库
# add_library(hello libHelloSLAM.cpp)
# 共享库
# add_library(hello_shared SHARED libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数
# add_executable(useHello useHello.cpp)
# 将库文件链接到可执行程序上
# target_link_libraries(useHello hello_shared)

首先我们在终端输入

cmake .

这一步是用来生成Makefile文件的。

第二步,我们在终端输入

make

这一步就是用生成的Makefile文件来组织项目中cpp h 文件的编译。编译过程实际是在第二步执行的。
我们执行一下helloSLAM:
在这里插入图片描述
一般情况下,我们都会创建一个文件夹,叫build。在这个build文件夹中进行编译。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、针对多文件引用库
1、静态库

先针对cpp文件生成一个库,这个静态库最后生成的叫做hello。

# 声明要求的 cmake 最低版本
# cmake_minimum_required(VERSION 2.8)

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
# set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
# add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库 先是静态库的名字 后面的是库的原文件。
 add_library(hello libHelloSLAM.cpp)
# 共享库
# add_library(hello_shared SHARED libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数
# add_executable(useHello useHello.cpp)
# 将库文件链接到可执行程序上
# target_link_libraries(useHello hello_shared)

依然是在新建build文件夹,这个文件夹中输出这个库。

cmake ..
make 

在这里插入图片描述
在这里插入图片描述
我们可以注意到生成的库是libhello.a静态库。

2、动态库

如果想让其生成动态库,Cmakelists.txt如下:

# 声明要求的 cmake 最低版本
# cmake_minimum_required(VERSION 2.8)

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
# set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
# add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库
# add_library(hello libHelloSLAM.cpp)
# 共享库 用于动态库
 add_library(hello_shared SHARED libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数
# add_executable(useHello useHello.cpp)
# 将库文件链接到可执行程序上
# target_link_libraries(useHello hello_shared)

依然是在新建build文件夹,这个文件夹中输出这个库。

cmake ..
make 

生成的是动态库.so
在这里插入图片描述

3、生成可执行文件

将可执行文件与生成的静态库连接到一起:

# 声明要求的 cmake 最低版本
# cmake_minimum_required(VERSION 2.8)

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
# set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
# add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库 生成静态库。
 add_library(hello libHelloSLAM.cpp)
# 共享库
# add_library(hello_shared SHARED libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数 生成可执行文件。
 add_executable(useHello useHello.cpp)

# 将库文件链接到可执行程序上 将静态库与可执行文件连接到一起。
 target_link_libraries(useHello hello)

依然是在新建build文件夹,这个文件夹中输出这个库。

cmake ..
make 

在这里插入图片描述

4、.h文件存放在其他文件夹中,需要在cmakelists.txt设置参数

这里如果.h文件放置到了其他文件夹中,cmakelists.txt就需要其他设置了。
添加include_directories(“include”)这句话:

# 声明要求的 cmake 最低版本
# cmake_minimum_required(VERSION 2.8)

#这里是用来添加.h文件夹存放搜索的文件夹
include_directories("include")

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
# set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
# add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库
 add_library(hello libHelloSLAM.cpp)
# 共享库
# add_library(hello_shared SHARED libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数
 add_executable(useHello useHello.cpp)

# 将库文件链接到可执行程序上
 target_link_libraries(useHello hello)
5、.cpp文件存放在其他文件夹中,需要在cmakelists.txt设置参数

就是给添加hello库的源文件cpp指定到存放的文件夹中。
添加可执行程序调用hello库的cpp也需要指定文件夹。

# 声明要求的 cmake 最低版本
# cmake_minimum_required(VERSION 2.8)

#这里是用来添加.h文件夹存放搜索的文件夹
include_directories("include")

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
# set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
# add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库
 add_library(hello ./src/libHelloSLAM.cpp)
# 共享库
# add_library(hello_shared SHARED libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数
 add_executable(useHello ./src/useHello.cpp)

# 将库文件链接到可执行程序上
 target_link_libraries(useHello hello)

如果要详细了解cmake就需要自行学习了。

20、source 一连串指令执行

首先查看hello.sh文件中的命令
在这里插入图片描述
之后通过终端执行

source hello.sh

在这里插入图片描述

21、显示所有文件(查看隐藏文件)

ls -a

在这里插入图片描述

22、编辑主文件夹下的.bashrc文件

ls -a

查看主文件夹下的所有文件,包括隐藏文件。
在这里插入图片描述
我们查看并编辑.bashrc文件,添加一句echo i am coming
在这里插入图片描述
我将终端关闭后,再打开:可以看到最上面多了一句i am coming
在这里插入图片描述
之后我们再编辑.bashrc文件
在这里插入图片描述
其中hello.sh是一下执行内容:
在这里插入图片描述
保存编辑后的.bashrc,我们再次开启终端:可以注意到开头多了很多执行的内容。
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是在 Ubuntu 22.04 上源码编译安装 ROS Noetic 的步骤: 1. 安装依赖项 首先,需要安装一些依赖项,包括构建工具、依赖项和其他必要的软件包。在终端中运行以下命令: ``` sudo apt update sudo apt install -y python3-rosdep python3-rosinstall-generator python3-wstool build-essential cmake ``` 2. 初始化 rosdep 运行以下命令以初始化 rosdep: ``` sudo rosdep init rosdep update ``` 3. 创建工作空间 在您的主目录中创建一个 catkin 工作空间。运行以下命令: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 4. 下载源代码 使用 rosinstall_generator 下载 ROS Noetic 的源代码。运行以下命令: ``` cd ~/catkin_ws/src rosinstall_generator desktop --rosdistro noetic --deps --tar > noetic-desktop.rosinstall ``` 5. 安装依赖项 使用 rosdep 安装必要的依赖项。运行以下命令: ``` cd ~/catkin_ws/src sudo apt install -y python3-rosdep rosdep install --from-paths . --ignore-src --rosdistro noetic -y ``` 6. 构建源代码 运行以下命令构建源代码: ``` cd ~/catkin_ws/ catkin_make ``` 7. 设置环境变量 运行以下命令以设置 ROS 环境变量: ``` source ~/catkin_ws/devel/setup.bash echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc ``` 现在,您已经成功地在 Ubuntu 22.04 上源码编译安装ROS Noetic。您可以通过在终端中运行以下命令来验证安装: ``` roscore ``` 如果一切正常,您应该能够启动 ROS 核心。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Henrik698

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值