美文网首页
2018-10-09 既然绕不开,那么久啃倒它----makef

2018-10-09 既然绕不开,那么久啃倒它----makef

作者: 探索的足迹 | 来源:发表于2018-10-25 11:16 被阅读0次

           对于eclipse 这类编译器 build project 的时候makefile 文件写明了编译的全过程。我一直抱着凑合改改能用即可态度,实际上反而花费了更多的时间 。今天开始一句一句的分析8266的RTOS工程里的makefile 文件,本着笨人笨办法的态度一句一句读。

         首先eclipse 在工程RTOS30执行 build project 实际等同于在RTOS30目录层执行 make , 命令行输入make 试试,提示如下:

    因为这目录里没makefile,make 寻找“GNUmakefile”,“makefile”,“Makefile”这几个文件,谁先找到就听谁的开始干活。 和以前的2.0的版本不一样3.0的makefile 采用单独工程单独设置了。那么

    进入自己的项目wifi里发现了makefile,内容如下:#开始的为注释内容,暂时不管。

    只有2句话 :1,给 PROJECT_NAME赋值,以后用到$PROJECT_NAME都替换成 simple_wifi 了。

                        2. 把  IDF_PATH(上一篇我们在esp32_toolchain.sh这个批处理文件里定义了IDF_PATH 与PATH  D:\msys32\home\andluman\esp\RTOS30)/make/project.mk 引用过来。现在去看看里面都是什么内容呢?

    巨大一堆。

    不管3721先敲下 make 试试

    干活了。

    那么我们接下来看看他是怎么一条一条运行的。线索肯定在project.mk的一大堆堆里面。

    读project.mk文件前我们简单了解一下   A.注释为#开头,B,@echo 表示打印提示信息给你看看(里面很多坑,比如必须以tab键开头). C:.mk 文件的最基本构成是    target ... : prerequisites .

                                     command1

                                    command2

                                    command3

                                    ...

    进入正文:

    ####注释一堆,看得懂得应该看看。

    具体执行的第一句:

    .PHONY: build-components menuconfig defconfig all build clean all_binaries check-submodules size size-components size-files size-symbols list-components  这句 .PHONY 标识 表示:如果他后面那一堆名称不小心与你的文件夹重名 他不犯傻抛弃上面的命令导致编译出错。还有另外个作用暂时不用管。

    MAKECMDGOALS ?= all 缺省的make 参数为 执行 target all 你也可以改成 =clean 试试坑自己一把

    all: all_binaries   你敲了make 或者make all 那么他就进来找这个all target;这玩意就像门铃没人按他他是不会执行的。你按了以后门开了,all_binaries 出来了,至于他是一个啥我们去找找看。

    all_binaries: $(APP_BIN) 又是一扇门,门后面是 $(APP_BIN)  ,$的意思是取括号里的值,值有可能是1个数,有可能是一堆数,数组,字符,目录,等等许多可能;我们把他取出来再决定干什么;看看APP_BIN在哪定义的替换进来。

    378行:APP_BIN:=$(APP_ELF:.elf=.bin)

    又要烂尾吗。慢慢再填坑。

    相关文章

      网友评论

          本文标题:2018-10-09 既然绕不开,那么久啃倒它----makef

          本文链接:https://www.haomeiwen.com/subject/zvyeaftx.html