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

  • 相关阅读:
    使用ftp软件上传下载php文件时换行丢失bug
    #1045
    wamp虚拟主机的配置 .
    css3很酷的加载动画多款
    理解CSS3 transform中的Matrix(矩阵)
    好吧,CSS3 3D transform变换,不过如此!
    js流程控制语句
    js变量
    js函数
    Gym 100507I Traffic Jam in Flower Town (模拟)
  • 原文地址:https://www.cnblogs.com/Viewsky/p/4432649.html
Copyright © 2011-2022 走看看