前言
很多非科班出身的工程师对项目的编译链接其实是很不熟悉的(包括作者自己),但是如果我们想自己做项目或者从0到1实现一个项目,或者想要优化程序,或者要修改memory layout,或者要实现AUTOSAR架构下内存保护,编译链接是必不可少的知识。本着打破沙锅学到底的目的,我们决定从0到1实现一个Windows操作系统下基于AUTOSAR架构的编译环境,同时为了锻炼我们的代码能力,从0到1实现一个常用的数据结构库,如果有比较优秀的开源AUTOSAR代码也计划加入进去。计划手写整个工程的makefile使用make工具能直接编译工程,同时编写CMakeLists文件,支持CMake生成makefile文件来编译整个工程。
对编译链工具不熟悉的,可以参考这篇文章:https://blog.51cto.com/xiacaojun/5648507
我们将使用的工具:
项目构建生成工具:CMake
项目构建工具:make
编译器:
Windosw: gcc/g++
TC3xx: Green Hills (GHS)
关于Window下CMake入门安装请参考这篇文章:Windows下CMake的小白级入门使用教程(hello world)
本文目录
注:本文章引用了一些第三方工具和文档,若有侵权,请联系作者删除!
正文
make是一个应用程序
-- 能够解析源程序之间的依赖关系
-- 根据依赖关系自动维护编译工作
-- 执行宿主操作系统中的各种命令
怎么理解根据依赖关系自动维护编译工作? -- 我们开始编译后,开始是正常在编译,编译到某个地方时报错了,make能保证:开始出错前的正确编译过的文件,在下次重新编译时不在需要再次编译。
makefile时一个描述文件
-- 定义一系列的规则来指定源文件编译的先后顺序
-- 拥有特定的语法规则,支持函数定义和函数调用
-- 能够直接集成操作系统中的各种命令
makefile中的描述用于指导make程序如何完成工作;make根据makefile中的规则执行命令,最后完成编译输出。
hello:
echo “hello makefile”
hello: 是目标
echo “hello makefile”: 实现目标所需执行的命令
注意:目标后的命令需要用Tab键(‘\t’)隔开,而不是4个空格!
make -f mf.txt hello
说明:以hello关键字作为目标查找mf.txt文件,执行hello处的命令。
-f: 告诉make工具,我们通过-f后面所跟上的这个文件来找到要执行的动作,要执行的动作在hello这个地方。
make hello
说明:以hello关键字作为目标查找makefile或者Makefile文件,并执行hello处的命令。让 make 去查找hello这个目标,如果我们省略了-f知道makefile文件,就会默认去查找名为makefile或者Makefile文件,在当前目录下查找。
make
说明:查找makefile或Makefile文件中最顶层目标,并执行最顶层目标的命令。
创建文件:make.txt
编写make.txt
#make.txt
hello:
echo "hello makefile"
makefile中所编写的这些内容非常类似于一个程序,make类似于一个解释器了,解释器来解释一个脚本程序。
makefile中编写的是一种脚本程序,它可以被解释执行,解释器就是make了。
修改make.txt文件名为makefile:
修改makefile文件中的内容如下:
#makefile
hello:
echo "hello makefile"
test:
echo "test"
make只是一个特殊功能的应用程序。
make用于根据指定的目标执行相应的命令。
makefile用于定义目标和实现目标所需的命令。
makefile有特定的语法规则,支持函数定义和调用。
参考资料:
1.狄泰软件唐老师课程
2.专业嵌入式软件开发书籍
End
「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」
点击文章最后左下角的阅读原文可以获取更多信息
或者复制如下链接到浏览器获取更多信息
https://blog.csdn.net/qq_36056498/article/details/132125693
文末福利
2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;
注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!
推荐阅读
汽车电子嵌入式精彩文章汇总第一期:20210530-20230703
汽车电子嵌入式精彩文章汇总第2期
TC3xx芯片GTM模块-CMU,CCM,TBU详解
TC3xx芯片GTM模块-TOM详解
AUTOSAR架构下PWM模块配置实践
TC3xx芯片GTM模块-TIM详解
AUTOSAR架构下ICU模块配置实践
TC3xx芯片电源管理系统PMS详解
End
欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!
汽车电子嵌入式
微信扫描二维码,关注我的公众号