摘要:交叉编译概念。 什么是交叉编译?交叉编译是在一个平台上生成另一种平台上的可执行代码。 在某些情况下,您可能需要Raspberry Pi,因为目标平台尚未建立,甚至没有操作系统,因此无法谈论运行编译器。
1.交叉编译的概念 1.什么是交叉编译:生成可以在一个平台上执行的代码到另一个平台上。 在 Windows 上编写 C51 代码并将其编译为在 C51 而不是 Windows 上运行的可执行代码,例如 xx.hex。 在Ubuntu上编写Raspberry Pi代码并将其编译为可执行代码。 例如,A.OUT 在 Raspberry Pi 上运行,但不能在 Ubuntu Linux 上运行。 C51的交叉编译是在Keil(集成环境)中完成的。 STM32编译:是可执行文件。 为什么要在平台2上交叉编译生成的代码?
该平台没有交叉编译所需的编译器(例如C51 2.1),因为目标平台资源较差,无法运行所需的编译器。安装。
2.2 Raspberry Pi 是否需要交叉编译? 有时也使用树莓派。 这是因为目标平台还没有建立,连操作系统都没有,所以我们无法谈论编译器将运行在什么上。 操作系统也是代码,必须编译。 一个平台至少需要两个东西才能运行:引导加载程序(引导代码)和操作系统核心。
3、主机、目标机 主机:用于编辑、编译程序的平台(通常是基于X86的PC)。通常称为主持人。 目标:用户开发的系统(通常是非X86平台)。 主机编译的可执行代码在目标上执行。 4、交叉编译需要什么工具? 交叉编译器(交叉编译工具链) 2、安装交叉编译工具链 1、下载并安装。
下载地址:https://github.com/raspberrypi 点击该工具,将下载的Zip包克隆到共享文件夹。 Windows 中的文件夹(设置共享文件夹参见博文:https://blog.csdn.net/SkyGloaming/article/details/120518021)
共享文件夹到当前目录 cp /mnt 复制到 /hgfs/。 share/tools[ k4]master.zip ./unzip 解压tools-master.zip并进入bin目录 cd tools-master/arm-bcm2708/gcc-linaro-arm - linux-gnueabihf[ k4]raspbian-x64/bin
2.设置环境变量进入bin目录,使用pwd命令更改当前路径(例如:/home/CLC) 。 /pi/tools-master/arm[k4 ]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) 2.1 暂时启用,设置环境变量 PATH 环境变量导出 PATH=(回显 $PATH 并在 pwd 值中间添加冒号)示例(导出 PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/pi/tools-master/arm-bcm2708/gcc[k4 ] ]linaro-arm-linux-gnueabihf-raspbian-x64/bin) 2.2 已永久启用。 配置环境变量以更改主目录中隐藏的 .bashrc 文件。 该文件用于配置命令终端。 将以下内容添加到 cd ~vi .bashrc 文件的最后一行: export PATH= (echo 在 $PATH 值和 pwd 值之间添加冒号) source .bashrc 加载配置文件并使配置立即生效。
3、测试验证交叉编译工具版本。 arm-linux-gnueabihf-gcc -v 的版本是 4.8.3。 如何编译:arm -linux-gnueabihf-gcc xxx.c -o xxx 如何将编译好的可执行文件下载到开发板:scp clientInPi pi@192.168.43.30:/home/pi 命令可执行文件file 文件名 开发板用户名@开发板IP地址:开发板的绝对路径
file xxx 没有容易识别和创建的可执行文件类型。 用你的小手点赞、收藏
评论前必须登录!
注册