zoukankan      html  css  js  c++  java
  • Makefile编写学习摘要

    windows的.lib跟Unix的.a一样,属于中间级。

    .o跟Windows的对象一样,是编译后的文件,需要连接起来(LINK),之后才是可执行文件。

    clean:一般是make clean ,删除中间的目标文件,.o之类。可以叫别的名字,指示动作用,可以自己定义操作,打包make uImage意思应该就是makefile下定义了一个叫uImage的?

    edit : main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    cc -o edit main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    ##反斜杠(/)是换行符的意思
    main.o : main.c defs.h
    cc -c main.c
    kbd.o : kbd.c defs.h command.h
    cc -c kbd.c
    command.o : command.c defs.h command.h
    cc -c command.c
    ...
    utils.o : utils.c defs.h
    cc -c utils.c
    
    clean :
    rm edit main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o

    以上代码也可以称为Makefile,写起来麻烦但是清楚,对于工程小不想装13的可以直接这么写。

    如果,突然想加个新的.o,凡是与其相关,都必须要补上对应关系的.o,漏了就make失败,为了方便Makefile的修改工作,有了Makefile的变量(类似C中的宏),叫OBJ,obj,objs,objects...之类。。。(好像没啥区别)

    objects = main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    edit : $(objects)
    cc -o edit $(objects)
    ........
    utils.o : utils.c defs.h
    cc -c utils.c
    clean :
    rm edit $(objects)

    然后,make识别XX.o的依赖文件就是XX.c,(.o & .h)再一起被make自动推倒(导),将其收拢起来,变得更加简洁。于是:

    objects = main.o kbd.o command.o display.o /
    insert.o search.o files.o utils.o
    
    edit : $(objects)
    cc -o edit $(objects)
    
    $(objects) : defs.h
    kbd.o command.o files.o : command.h
    display.o insert.o search.o files.o : buffer.h
    ##.PHONY意思表示clean是一个“伪目标”,。而在rm命令前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事。
    .PHONY : clean
    clean :
    -rm edit $(objects)

    要指定特定的Makefile,你可以使用make的“-f”和“--file”参数,如:make -f Make.Linux或make --file ARMakefile

    引用makefile 使用 include <filename>

    1、如果make执行时,有“-I”或“--include-dir”参数,那么make就会在这个参数所指定的目录下去寻找。
    2、如果目录<prefix>/include(一般是:/usr/local/bin或/usr/include)存在的话,make也会去找。

    //引用自http://blog.csdn.net/liang13664759/article/details/1771246

  • 相关阅读:
    PHP开发者必须养成的十大优良习惯
    Centos7下编译安装PHP
    linux 强制删除yum安装的php7.2
    php和go的web性通对比
    最好的编程语言及其它
    管理哲学新解
    继甲骨文裁员、Java服软Python后,国产原创IT技术已经成熟,让中国科技不再受制于人!
    雷军:我是个失败的创业者,因为我是劳模
    当95后进入大厂
    如何避免自high式分享
  • 原文地址:https://www.cnblogs.com/Viewsky/p/4432649.html
Copyright © 2011-2022 走看看