datetime:2023/09/11 14:16
author:nzb

该项目来源于大佬小鱼的动手学ROS2

4.玩转Ubuntu之编程工具

做机器人最常用的两门语言就是C++和Python,同时这两门语言也是编程语言流行度排行榜数一数二的。

image-20220602004545523

听说牛逼的大佬都用记事本写代码,这节带你在Linux版记事本之gedit上写一下C++和Python代码。

1.Hello FishRos

1.1 Python版

打开终端,创建一个d2lros2文件夹接着在文件夹下创建chapt1文件夹。

mkdir d2lros2
cd d2lros2
mkdir chapt1

接着输入下面的指令打开gedit并创建文件

gedit hello_fishros.py

image-20220602004014904

接着你应该看到一个类似于记事本的东西,在里面输入下面一段代码,打印一句话

print("Hello FishRos!")

使用Ctrl+S保存代码

关掉gedit,接着在终端输入下面的指令运行这段脚本

python3 hello_fishros.py

如果一切正常,你将看到

image-20220602003959225

1.2 C++版

接着我们来学习C++版本的打印一句话。

进入终端,用gedit再次编辑一个叫做hello_fishros.cpp的文件。

cd d2lros2/chapt1/
gedit hello_fishros.cpp

输入下面的内容

#include"iostream"

int main(){
    std::cout<<"Hello FishRos!"<<std::endl;
    return 0;
}

你会发现C++代码要比Python复杂很多,这也是近年来人生苦短,我用Python的来源。

保存代码,关闭gedit。

image-20220602001924041

更麻烦的是你还不能直接运行C++的代码,C++代码必须经过编译构建之后才能运行。

C++的编译工具使用的是g++,默认是不安装的,所以我们需要手动安装一下g++。

使用上节课讲到的安装工具安装g++

sudo apt install g++

接着在终端输入下面的指令对刚刚的代码进行编译。

g++ hello_fishros.cpp

如报错请尝试安装:sudo apt-get install build-essential

接着使用ls指令,你应该可以看到一个叫做a.out的文件。恭喜,现在你可以运行了。

输入下面的指令即可运行

./a.out

image-20220602003519710

请不要小看Linux中的.,它的用途很广,比如这里就是用于执行文件./文件名

2.为什么C++需要编译

2.1 编译执行和解释执行的区别

在知乎上看到一个比喻,非常好。

编译相当于做好了一桌子菜,可以直接开吃了。

img

而解释就相当于吃火锅,需要一边煮一边吃。

img

那么自然,吃的效率也会低一些。

2.2 编译执行

编译执行需要在运行之前把代码翻译成计算机认识的二进制文件,执行的时候就不需要再次翻译了,计算机可以直接看的懂。

C++的代码就是需要编译器进行翻译的,其翻译器的名字就叫做g++,该编译器非常的有名。

可以参阅下面的文章

2.3 解释执行

Python可以说是解释执行的语言了,在运行前不需要翻译,运行时由解释器一句句解释运行即可。

2.4 编译VS解释

编译型语言VS解释型语言_Frank---7的博客-CSDN博客

  • 编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
  • 解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。

编译型的语言包括:C、C++、Delphi、Pascal、Fortran 解释型的语言包括:Java、Basic、javascript


results matching ""

    No results matching ""