zoukankan      html  css  js  c++  java
  • makefile 学习笔记

    1/ 编写简单makefile

    test_out: test.o
            g++  test.o -o test_out
    
    test.o: test.cpp test.h
            g++ -c test.cpp test.h
    .PHONY:clean                   #可有可无:   说明clean是个伪目标文件
    clean:
            rm test_out test.o test.h.gch

    test_out 为输出文件  由目标文件讲过链接生成,链接的命令是下面一行代码。 注: makefile中命令 必须以 tab键开头,否则会报错

    test.o    为经过编译生成的目标文件,他的依赖关系是 test.cpp test.h ,同样编译的命令也必须以tab开头

    clean     为clean命令,通过make clean 可以删除make过程当中生成的中间文件。

    test.h.gch : 为预编译文件,在编译过程中生成的,以提高编译效率。

     http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html

    # : 和shell中相似,用#作为注释符号

    注: 冒号后面都是它的依赖文件

    2/ makefile 自动推导编译命令,以及后面所跟的.c文件

    # 自动推倒之前的makefile
    objects = main.o kbd.o command.o display.o 
    insert.o search.o files.o utils.o
    edit : $(objects)
    cc -o edit $(objects)
    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
    display.o : display.c defs.h buffer.h
    cc -c display.c
    insert.o : insert.c defs.h buffer.h
    cc -c insert.c
    search.o : search.c defs.h buffer.h
    cc -c search.c
    files.o : files.c defs.h buffer.h command.h
    cc -c files.c
    utils.o : utils.c defs.h
    cc -c utils.c
    .PHONY : clean
    clean :
    rm edit $(objects)
    
    #缩减之后的makefile  ,省略.c文件 编译命令
    objects = main.o kbd.o command.o display.o 
    insert.o search.o files.o utils.o
    edit : $(objects)
    cc -o edit $(objects)
    main.o : defs.h
    kbd.o : defs.h command.h
    command.o : defs.h command.h
    display.o : defs.h buffer.h
    insert.o : defs.h buffer.h
    search.o : defs.h buffer.h
    files.o : defs.h buffer.h command.h
    utils.o : defs.h
    .PHONY : clean
    clean :
    rm edit $(objects)
  • 相关阅读:
    系统优化怎么做-JVM优化之开篇
    系统优化怎么做-Tomcat优化
    系统优化怎么做-Linux系统配置优化
    系统优化怎么做-SQL优化
    系统优化怎么做-数据库优化
    系统优化怎么做-新系统上线前做什么
    系统优化怎么做-开篇
    一起学习Avalonia(一)
    etcd的应用举例
    c#总结几种正则表达式使用
  • 原文地址:https://www.cnblogs.com/NeilZhang/p/5837237.html
Copyright © 2011-2022 走看看