交叉编译

171 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第39天,点击查看活动详情

一、交叉编译

1、什么是交叉编译

一个平台上生成另一个平台上的可执行代码 例如:window上用kell编译c51,生成的可执行代码xxx.hex在单片机上运行

2、为什么要用

1.目标平台上无法安装编译器 2.目的平台未建立,要交叉编译生成bootloader(启动引导代码)以及操作系统核心 宿主机:编辑和编译程序的平台 目标机:用户开发的系统,比如ARM平台

3、交叉编译工具

交叉编译器,交叉编译工具链

二、树莓派交叉编译工具链安装

1、下载地址

树莓派工具链

2、Linux下安装

1.解压文件(解压完成就代表完成安装,然后配置环境变量) 命令:unzip tools-master.zip(压缩包文件名) 2.进入目录 cd tools-master/arm-bcm2708/ 3.选择32位还是64位 在这里插入图片描述 4.进入目录(x64) cd gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/ 在这里插入图片描述 5.软链接 输入命令:ls -l 在这里插入图片描述 输入arm-linux-gnueabihf-gcc 会转到后面的arm-linux-gnueabihf-gcc-4.8.3程序(软连接不占内存) 参考Linux链接 6.查看版本号 输入命令:./arm-linux-gnueabihf-gcc -v 在这里插入图片描述

3、配置环境变量

1.临时有效 查看环境变量

echo PATH添加环境变量exportPATH=环境变量到games:或者PATH 添加环境变量 export PATH=环境变量到games: 或者 PATH 加上pwd出来的路径

CLC@Embed_Learn:~/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin$ pwd
/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

CLC@Embed_Learn:~/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.5.1/bin:/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

CLC@Embed_Learn:~/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin$ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

2.永久有效

修改工作目录下的.bashrc 隐藏文件,配置命令终端的

1.cd 回到工作目录

2.vi .bashrc 进入文件

3.在文件最后加入配置环境变量的代码

4.source .bashrc 生效配置

5.输入arm-linux-gnueabihf-gcc -v 查看是否成功 在这里插入图片描述