| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 嵌入式 -> 迅为IMX6ULL开发板交叉编译器的安装和使用 -> 正文阅读 |
|
|
[嵌入式]迅为IMX6ULL开发板交叉编译器的安装和使用 |
|
本章内容对应视频讲解链接(在线观看):?
我们写了 linux 上第一个 c 程序 heollo world ,是使用 gcc 编译器进行代码的编译,编译得到的可执行文件只能在 X86 结构的 PC 上运行,我们来看下,在我的 ubuntu 的 test 目录下有一个 hello.c ,这个程序也非常简单,就是一个 hello world ,我们来编译一下,然后运行下可执行文件,这个可执行文件是可以在 PC上运行的。如下图所示。
然后我们使用 file 命令来看下这个文件,这个文件是可以在 X86 上运行的,但是它不能在?ARM?上运行,因为它这里写的是 X86。如下图所示。
如果我们想在 ARM 上运行,就要使用 ARM 的编译器,然后在 X86 上进行编译。因为我们使用 ARM 的编译器编译完了之后,是把我们的可执行程序放到开发板上来运行,而不是在 PC 上运行的,这个过程大家可以把它理解成交叉,然后再和我们的编译器结合起来就叫做交叉编译器。交叉编译器的种类有很多,我
我们已经给大家下载好了,打开 i.MX6ULL 终结者光盘资料\01_开发及烧写工具\1.交叉编译器,给大家下载好了一个是 64 位的,一个是 32 位的,如下图所示。
然后我们把交叉编译器拷贝到 ubuntu,因为我们安装的是 64 位的 ubuntu ,所以要安装 64 位的交叉编译器,这里作者不推荐大家安装 32 位的 ubuntu,因为 64 位的 ubuntu,可以安装支持 32 位的依赖包,但是 32 位的 ubuntu 安装不了 64 位的依赖包,所以大家哪怕这里是安装的 64 位的,但是他也是向下兼容32 位的,所以作者这里推荐提供的都是 ubuntu64 位的系统,
我们要使用管理员的身份来运行,解压成功后,就会在当前目录下看到生成的这个文件,如下图所示。
解压完之后下一步就要添加环境变量了,这里之前给大家讲过了,ubuntu 修改的是这个文件,我们也可以修改 .bashrc 文件,我们之前讲到了修改环境变量的方法,参考第十七章,我们修改的这个文件是对所有用户生效的,就是说我在这里添加完了环境变量,不管是在 topeet 用户还是在 root 用户都可以找到arm 交叉编译器,如果是在 bashrc 这个文件下修改,那么你当前是哪个用户你就仅对当前这个用户生效,所以我们来改下这个文件,打开文件如图所示。
然后我们进到这个文件的最后,输入
修改完了之后,我们要重启下 ubuntu,这样交叉编译环境才能生效,环境变量才可以生效。使用命令
重启成功后,我们来检查我们的交叉编译器有没有成功安装,我们可以在控制台上输入 arm- 输入一个Tap 他会自动帮我们补全,然后我们输入一个 gcc -v ,
然后我们进到 test 目录下,我们使用交叉编译器来编译下 hello.c ,编译方法和我们之前使用 gcc 编译方法是一样的,gcc 加 hello.c 这个源文件,然后后边跟上-o 指定的文件名称,格式是一摸一样的,只不过把 gcc 编译器换成了交叉编译器,使用 arm-linux-gnueabihf- 后边跟上 gcc 和我们要编译的原文件的名字,-o 指定下我们要生成的可执行文件,这样我们就编译成功了,如下图所示。
然后我们可以来运行下这个 hello ,大家看他这里是提示错误的,我们不能执行,如下图所示。
使用 file 命令来看下,这里显示的架构是 arm ,说明我们这个可执行文件是在开发板上运行的而不是在 X86 上运行的,可以看到,使用 gcc 编译器编译出来的可执行文件,它的架构是 X86 的,所以我们使用 gcc编译器编译完的可执行程序只能在 X86 的 ubuntu 上运行,不能在 arm 上运行。大家通过 file 命令就可以区分了,大家可以自己安装下。如下图所示。
|
|
|
| 嵌入式 最新文章 |
| 基于高精度单片机开发红外测温仪方案 |
| 89C51单片机与DAC0832 |
| 基于51单片机宠物自动投料喂食器控制系统仿 |
| 《痞子衡嵌入式半月刊》 第 68 期 |
| 多思计组实验实验七 简单模型机实验 |
| CSC7720 |
| 启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
| STM32初探 |
| STM32 总结 |
| 【STM32】CubeMX例程四---定时器中断(附工 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/26 1:17:49- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |