编译器编译内核原理以及其应用
上篇文档简要介绍了一下编译器的编译内核,当然介绍的很简单,没有深入进去,俗话说不深入怎么High,所以这里我们深入进去搞一下,看看里面都有些什么有用的东东。
这里以市面上用的最多的Keil MDK为例,我们来研究下。
1、先上一张老图,然后我们仔细看下这个器、那个器的都是干啥的:
上一篇文章的图片,上一篇文章也简要介绍了下,但你可能会问,这东西了解了又能怎样?有什么用吗?那么好,司机我就来给大家带带路,看看了解编译原理是不是真的那么没用?
司机嘛,首先先来带大家认认路,你说这几个东东很重要,但是在Keil里面我们怎么找到他们呢?
你可以在"keil根目录\ARM\ARMCC\bin"下找到他们,如下图所示:
就是这几个东东,他们就是keil编译器的内核,把你编写的C代码变成可以烧写到MCU中执行的2进制文件就是这几个东东来完成的,其中armar.exe就是预处理器、armcc.exe是编译器、armasm.exe是汇编器、armlink.exe是链接器、fromelf.exe是elf文件的实用工具集。
有了这几个东东你可以甚至都不用Keil的编程界面都可以干活,直接在windows的shell界面里面通过命令行就可以编译链接,但这个是真没啥用,纯装B,有IDE不用非要自己敲命令行这部找罪受嘛,这里就不介绍这种没啥用的招数了。
当然了你也可以在集成开发环境中见到这几个货:
如上图:
1、汇编器的相关选项;2、编译器的相关选项;3、预处理器的相关选项;4、链接器描述文件(*.map)中包含的内容;
还有这个: