Greenhills学习总结

**学习背景:**近期参与xx项目过程中,遇到较多的关于代码集成编译的知识盲区,因此需要进行相关知识的学习和扫盲。

参考资料: GreenHills2017.7编译手册:本手册是GreenHills 2017.7.14版编译器的软件使用手册。该手册详细介绍了GreenHills编译器的使用方法、配置选项、编译流程以及常见问题解决方案,旨在帮助用户更好地理解和使用GreenHills编译器 - GitCode

20分钟Makefile光速入门教程_哔哩哔哩_bilibili

代码编译过程:

Traditional Compilation:黑色箭头;

Direct Binary Generation Compilation (白色箭头);

编译选项配置逻辑:

  1. 读取配置选项,当配置选项相矛盾时以后面的配置为准,当无法识别配置选项时,会忽略该配置并告警;
  2. driver按照文件的顺序进行处理,若一个文件存在问题,driver将继续处理后续的文件;若driver无法识别文件扩展名,会将该文件传递给链接器处理;

ccppc hello.c 产生以下类型文件:.out

  1. .o 目标文件。总是被编译器保留;
  2. .map 链接器生成;
  3. .dnm 包含基础的调试信息;
  4. .dla 包含基础的调试信息;

可识别的文件名:

**ld文件:**链接器指令(.ld)文件定义了可执行文件的程序段将程序段分配给不同的存储区。

eg: ccppc hello.c mylinkfile.ld

产生其他的文件:

cpp 复制代码
ccppc hello.c-S   //产生汇编语言
ccppc hello.c-c   //产生.o文件
 ccppc hello.c foo.o-archive-o libfoo.a  
//This command produces alibrary of object file called libfoo.a, which contains two object files, hello.o and foo.o.
//When using the-archive option to create a library, you must use the-o option to specify a name for it.

Driver Options for Intermediate Forms of Output:

可以通过一个文件来表示编译选项;会被识别的字符: 空格、制表符、换行、双引号,不能增加注释

举例如下:

makefiles:

20分钟Makefile光速入门教程

相关推荐
nashane2 小时前
HarmonyOS 6学习:画中画(PiP)状态同步与场景化实战指南
学习·pip·harmonyos·harmonyos 5
_李小白2 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
勤劳的进取家2 小时前
数据链路层基础
网络·学习·算法
d111111111d3 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
y = xⁿ4 小时前
Redis八股学习日记:布隆过滤器
数据库·redis·学习
d111111111d5 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
charlie1145141915 小时前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
我想我不够好。6 小时前
监控学习 4.29 1.5hour
学习
晓晓hh6 小时前
JavaWeb学习——JUnit和日志
学习·junit·单元测试
小超同学你好6 小时前
Transformer 30. MoCo:用「动量编码器 + 队列字典」把对比学习做成可扩展的“字典查找”
深度学习·学习·transformer