Ubuntu20.04下交叉编译树莓派能运行的c++程序(不含第三方库)

参见博主之前的博客,里面生成了test目标文件,现在将这个目标文件传到树莓派上,运行出现如下报错信息:

这里因为我的编译平台(x64 Ubuntu操作系统)和目标平台(ARM raspbian操作系统),所以前者编译出来的东西并不能在目标平台上运行。通样的代码,我们直接在树莓派上编译运行是没有问题的(代码见之前博客)。

那么我们可以通过交叉编译工具链来实现x64 Ubuntu编译出来的程序能运行到树莓派4B上。

1. 下载树莓派交叉编译工具

git clone git://github.com/raspberrypi/tools.git

下载完毕后可看到文件夹结构

2.添加交叉编译工具的路径加到环境变量中

终端中打开文件

sudo gedit ~/.bashrc

文件底部export对应自己路径

保存关闭,再输入如下命令生效一下

source ~/.bashrc

此时输入arm 后跟两个tab键,会输出如下信息:

这里我们要编译的是c++,选择工具arm-linux-gnueabihf-g++,使用该编译工具进行编译,编译成功。

尝试在ubuntu下运行目标文件test_helloworld,会出现如下不正确的信息,可以看到编译出来的目标文件在源平台上运行不了。

我们将编译出来的test_helloWorld.out拷贝到树莓派上,可以看到,正常运行。

可以看到在ubuntu上交叉编译出来的可执行文件,可以在树莓派上跑起来。

2022.1.2更新:

实验1: 博主尝试用如下树莓派路径下的编译环境,仍可以交叉编译成功。在树莓派上正确执行程序

 

### 在树莓派 Ubuntu 20.04运行 Python 程序 #### 安装必要的依赖包 为了确保能够在树莓派上的 Ubuntu 20.04 正常运行 Python 程序,首先要安装一些必需的库和工具。对于 Python 的串口通信支持,可以通过如下命令来安装 `python3-serial`: ```bash sudo apt install python3-serial ``` 这一步骤能够提供对串行端口的支持,这对于许多硬件项目来说是非常重要的功能[^1]。 #### 设置开发环境 如果计划使用 GPIO 库来进行编程,则可以从指定网站下载适用于 Raspberry Pi 的 GPIO 库: [GPIO Library Download](https://sourceforge.net/projects/raspberry-gpio-python/)[^2] 另外,在某些情况下可能还需要额外的声音处理能力或者网络通讯模块。例如,为了播放音频文件以及建立 WebSocket 连接,可以按照下面的方式安装相应的 Python 包: ```bash pip install websocket-client==1.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pydub==0.25.1 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 这些操作可以在基于 Ubuntu 的环境中顺利执行,并且有助于扩展应用程序的功能范围[^3]。 #### 实现 Python 文件开机自动启动 为了让特定的 Python 脚本在系统启动时自动运行,可以根据 Linux Service 的机制创建服务单元文件并将其放置于 `/etc/systemd/system/` 目录下。具体做法可参照鸟哥的《Linux 私房菜》第四版中的相关内容介绍。通过这种方式定义的服务将会随着系统的初始化过程一同被激活,从而达到无需人工干预即可让程序自行启动的效果[^5]。 #### WiFi 连接设置 (如有需要) 针对那些希望通过无线方式接入互联网的应用场景,还可以利用 wpasupplicant 工具完成 Wi-Fi 配置工作。尽管此方法主要应用于较旧版本的操作系统中,但在当前环境下依然适用并且简单易懂[^4]。 ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install network-manager nmcli dev wifi list nmcli dev wifi connect "Your_SSID" password "your_password" ``` 以上指令可以帮助快速找到可用的无线信号源并与之关联起来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

竹叶青lvye

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

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

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

打赏作者

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

抵扣说明:

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

余额充值