当前位置:网站首页>编译丨迅为iTOP4412开发板Makefile编译
编译丨迅为iTOP4412开发板Makefile编译
2022-06-30 15:48:00 【mucheni】
在前面入门视频第十期 “搭建编译环境 uboot_linux_Android” 中,只介绍了输入 Make 命令就可以编译出内核,并没有介绍它是如何运行的。在向内核中添加驱动的时候要完成 3 项工作,包括:
1)在 Kconfig 中添加新代码对应项目的编译条件,这一部分在实验 3 已经介绍过;
2)将驱动源码添加到对应的目录中,这一步比较好理解,在本章实验中将给大家演示一下;
3)在目录 Makefile 中文件中增加针对新代码的编译条目,这一部分将在本章节介绍到。视频资源:
本节配套视频为 “视频 04_Makefile 编译”
1 编译器路径的设置
在前面入门知识中,只介绍了在什么目录解压编译器,在环境变量文件中添加路径,就可以编译出内核,并没有介绍他们之间是如何对应的。
如下图所示,按照前面提供的基础教程,配置好 Ubuntu 中的编译器和库文件,输入命令 “make”,就可以编译生成内核的二进制镜像。

如下图所示,使用命令 “#cd”,使用命令 “#vim .bashrc” 打开环境变量文件 “.bashrc”。

如下图所示,进入最底行,可以看到,在环境变量文件中编译器路径设置为
export PATH=$PATH:/usr/local/arm/arm-2009q3/bin

然后使用命令 “#cd /usr/local/arm/”,进入解压编译器 “arm-2009q3.tar.bz2” 的文件目录

可以明显的看到,环境变量中设置的路径和解压的路径是对应的。这里回到内核源码的目录,如下图所示。

如下图所示,使用命令 “vim Makefile” 打开内核目录下的 Makefile 文件。

这里通过 vim 编辑器查找参数 “CROSS_COMPILE”,如下图所示。

可以查到参数 “CROSS_COMPILE”,如下图所示。

再看一下参数 “CROSS_COMPILE” 的下一行,可以看出这里有修改过的痕迹。很容易推断出,原来三星是用的 “4.5.1” 版本的编译器,不过这个没关系,只要能编译通过就可以了。
一般说来,拿到源码之后的第一步,是要先要先将源码编译通过。设置上图中的变量 “CROSS_COMPILE” 以及环境变量还有编译器实际解压路径三者对应。这三者对应之后,就能确保执行 Make 命令之后,系统能够找到这个编译器。
在编译命令执行的过程中,会提示一些错误,然后根据提示的错误,挨个去排查修改,去添加库文件或者修改库文件。这个过程有长有短,考验的只是耐心,并没有太多技巧。由于已经将缺少的库文件写成脚本,这样大家在编译器执行以下脚本就能够编译通过。
针对内核目录下的 Makefile 文件,提醒大家一下,这个文件中内容很多,除了上面编译器路径变量以外的其它部分几乎不用关注。
另外还有一个地方需要了解一下,如下图所示,在该文件的第一行,可以看到内核的版本。

边栏推荐
- Substrate 跨链技术源码级探索: XCVM的概览
- HMS core audio editing service 3D audio technology helps create an immersive auditory feast
- [Verilog basics] summary of some concepts about clock signals (clock setup/hold, clock tree, clock skew, clock latency, clock transition..)
- dart:字符串replace相关的方法
- The new tea drinks are "dead and alive", but the suppliers are "full of pots and bowls"?
- IO stream_ recursion
- 数据安全合规之后,给风控团队带来了新的问题
- Implementation of aut, a self-developed transport layer protocol for sound network -- dev for dev column
- [BJDCTF2020]The mystery of ip|[CISCN2019 华东南赛区]Web11|SSTI注入
- IndexSearch
猜你喜欢

备战数学建模34-BP神经网络预测2

异常类_日志框架

Mathematical modeling for war preparation 35 time series prediction model

八大基本排序(详解)

Eight basic sorting (detailed explanation)

OpenCV中LineTypes各枚举值(LINE_4 、LINE_8 、LINE_AA )的含义

RT-Thread 堆區大小設置

HMS core audio editing service 3D audio technology helps create an immersive auditory feast

云技能提升好伙伴,亚马逊云师兄今天正式营业

Hologres shared cluster helps Taobao subscribe to the extreme refined operation
随机推荐
Halcon knowledge: regional topics [07]
CGR 21 (D,E,F)
Mathematical modeling for war preparation 36 time series model 2
STL tutorial 7-set, pair pair pair group and functor
Talk about telecommuting | community essay solicitation
AVIC UAV technology innovation board is listed: the fist product with a market value of 38.5 billion is pterodactyl UAV
数据库系统概论习题册
深度学习——(2)几种常见的损失函数
删除有序数组中的重复项 II[双指针--多情况统一]
八大基本排序(详解)
【Verilog基础】关于Clock信号的一些概念总结(clock setup/hold、clock tree、clock skew、clock latency、clock transition..)
ArcMap operation series: 80 plane to latitude and longitude 84
Installing jupyter notebook under Anaconda
招标公告:天津市住房公积金管理中心数据库一体机及数据库软件项目(预算645万)
POJ Project Summer
互联网研发效能实践之去哪儿网(Qunar)核心领域DevOps落地实践
TCP socket and TCP connection
华为帐号多端协同,打造美好互联生活
[Verilog quick start of Niuke online question series] ~ bit splitting and operation
In order to make remote work unaffected, I wrote an internal chat room | community essay