编译系统的组成
cmake、autoconf/automake无组建系统, 为了解决Makefile难以书写问题
由于make运行时需要把每个文件夹下的Makefile都include 进来,比较耗时,于是开发出ninja组建系统,它运行时只解析 一个build文件,运行效率比较高. 手工写ninja的build文件很麻烦,所以niija组建系统几乎要配元组建系统 ,当只修改源码内容只运行nija命令, 当程序结构发生变化 星要用元组建系统重新生成ninja的build文件
编译分前后端,为什么区分前后端,是因为前端是通用的, 这样可以实现移植别的系统只使用后端进行编译即可
词法分析器: lex , 生成编译器的编译器: yacc
典型linux词法分析器:flex, 生成编译器的编译器: bison
参考链接: https://mp.weixin.qq.com/s?src=11×tamp=1663766045&ver=4058&signature=gq9ZPCDu17xmWnIrDvEIE*C9nbJQ4YGzV6X9AhQZZzGmBIyw9f5bBCMakEqao8pE8tdyni6WpBRxkHVvMUzSzFXpwkdA1803rA-U2EqYtvtb9enPi8GK6ReTuOAWUsCo&new=1