Android高级-NDK-C++编译原理与语法详解

1:编译流程:

编译范围四大过程:

1:预处理

2:编译

3:汇编

4:链接

1:预处理

    1 完成宏替换,文件引入,以及去除空行,注释等,为下一步的编译做准备

    2  也就是堆各种预处理命令进行处理,包括头文件的包含,宏定义的扩展,条件编译的选择等

 编译流程:

     Android高级-NDK-C++编译原理与语法详解

2:编译:

  1 将预处理后的代码编译成汇编代码,在这个阶段中没首先要检查diamante的规范性,是否有语法错误等,以确定代码世界要做的工作,再检查无误后,再把代码翻译成汇编语言

 2 编译程序执行时,先分析,后综合。先分析是指词法分析,语法分析,语义分析和中间代码生成;综合,就是指代码优化和diamante生成

3 大多数的编译程序直接产生极其语言的目标代码,形成可执行的目标文件,也有是先产生汇编语言的以及符号代码文件,在调用汇编程序进行翻译和加工处理,最后产生可执行的机器语言目标文件

     Android高级-NDK-C++编译原理与语法详解

3:汇编 

   汇编就是把编译阶段产生的".s"文件转成二进制目标代码,也就是机器代码(01序列)

4:链接

 练级就是将多个目标文件以及所需的库文件链接生成可执行目标文件的过程。

       Android高级-NDK-C++编译原理与语法详解

 

对比一下java的执行调用过程:

Android高级-NDK-C++编译原理与语法详解

2:静态库与动态库

静态库:

Android高级-NDK-C++编译原理与语法详解

 

2:如何生成静态库

Android高级-NDK-C++编译原理与语法详解

3:什么是动态库

Android高级-NDK-C++编译原理与语法详解

4:如何生成动态库

   Android高级-NDK-C++编译原理与语法详解