configure 就是一个shell的脚本,检查编译的环境,根据用户的配置,看看那些需要编译那些不需要编译。这个通过生成的宏来控制。也通过生成的makefile文件来控制。
configure生成的makefile文件被make命令执行,编译生成各种o文件和最后生成a(静态链接库) so(动态链接库) binary(二进制可执行文件)
make命令做些什么呢?
很简单,根据定义好的语义解析makefile,根据依赖关系,执行相关的命令。最后还是通过gcc,ar等命令工作的
gcc做了什么事情呢?
1、进行预编译,词法分析
2、编译为汇编文件s
3、编译为目标文件o(这个有ld linker吗???)
4、通过ar生成a文件,或者gcc生成so,binary
http://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
这个文章讲得比较清楚
Cross development
交叉开发(交叉编译)Native development
本地开发
交叉开发,需要通过交叉编译后,将编译好的文件部署到目标机器上面允许。常见于嵌入式开发。