交叉编译环境构建

本文详细介绍了如何在Ubuntu22LTS环境下,使用crosstool-ng为树莓派3B构建交叉编译工具链,包括准备工作、依赖安装、配置和编译步骤,以及测试验证方法。
摘要由CSDN通过智能技术生成

开源项目 crosstool-ng 极大的简化了交叉编译环境的搭建,为了方便小伙伴,现将教程制作如下:

目标硬件:树莓派3B+

实验环境:Ubuntu22 LTS

第0步:准备出发

        查看树莓派内核版本

      

        查看树莓派libc版本,执行ldd命令

        如下图:

        查看gcc版本

        编译过程会自动下载需要的软件包代码,下载失败或比较大的,可以提前下载好,放到tarball目录(下面有描述)

        资源下载来源:Index of /pub/gnu

第一步:更新ubuntu系统

        

sudo apt update

sudo apt upgrade

第二步:安装依赖

sudo apt-get -y install autoconf
sudo apt  -y install libncurses5-dev
sudo apt  -y install gperf
sudo apt  -y install bison
sudo apt  -y install flex
sudo apt  -y install texinfo
sudo apt  -y install help2man
sudo apt  -y install gawk
sudo apt  -y install libtool
sudo apt  -y install libtool-bin
sudo apt  -y install dpkg-dev
sudo apt  -y install git

第三步:克隆项目

cd ~
mkdir crosstool
cd crosstool
git clone https://github.com/crosstool-ng/crosstool-ng

第四步:依赖检测

cd crosstool-ng  # 进入项目目录
./bootstrap

第五步:编译前的配置

./configure

第六步:编译&安装

./make
sudo make install

第七步:创建必要的目录

cd ~/crosstool/crosstool-ng/
mkdir -p ./build/arm
cd ./build/arm
mkdir crosstool-ng-tarballs  toolschain
目录:crosstool-ng-tarballs 是编译过程中依赖的软件代码目录
toolschain是交叉工具编译输出目录

第八步:配置交叉编译工具链

cd ~/crosstool/crosstool-ng/
cp samples/arm-unknown-linux-gnueabi/crosstool.config .config
ct-ng menuconfig

第九步:编译工具链

ct-ng build

直到看到如下界面,表示编译完成

第十步:确认与测试

        cd ~/crosstool/crosstool-ng/

        cd ./build/arm/

        vi helloworld.c

测试代码:

#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}

编译文件: ./toolschain/bin/arm-unknown-linux-gnueabi-gcc helloworld.c -o helloworld

查看文件格式:file helloworld

直接在主机上运行

上传到树莓派上运行

在树莓派上运行


我公司承接各类技术服务,主要聚焦于:stm32、单片机、嵌入式、QT应用开发、Web+Python+Django应用开发。欢迎合作。


  • 41
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汉森教育

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

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

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

打赏作者

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

抵扣说明:

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

余额充值