zoukankan      html  css  js  c++  java
  • 如何写makefile

    1.一个简单的例子:

    TOPDIR = ../
    include $(TOPDIR)Rule.mak
    EXTRA_LIB +=
    
    EXEC = $(INSTALL_DIR)/hello
    OBJS = hello.o
    
    all:$(EXEC)
    $(EXEC):$(OBJS)
      $(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)
    install:
      $(EXP_INSTALL) $(EXEC) $(INSTALL_DIR)

    clean:
      -rm -f $(EXEC) *.elf *.gdb *.o

    好了,其中:

    CC 指明编译器的宏

    EXEC表明生成的执行文件名称的宏

    OBJS 目标文件列表宏

    LDFLAGS链接参数宏

    all 编译主入口程序

    clean: 清除编译结果

    install  将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin

    注意:在makefile中的命令,必须以[tab]键开头。注释用//

    2.一个c程序实例:

    target...:dependencies...

      command

    ...

    例如:

    main.o : main.c defs.h
      gcc -c main.c
    clean:
      rm edit main.o
    

    由于makefile可以自动推导.c所以main.c可以省略

    而.o可以用$(OBJECTS)来代替

    因此,最终makefile可以写成:

    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 kdb.o command.o files.o : command.h display.o insert.o search.o files.o : buffer.h
    .PHONY clean clean: rm edit $(OBJECTS)

      

  • 相关阅读:
    C++中 结构体和类的异同
    c++sizeof大全
    10th week task -3 Arrow function restore
    10th week task -2 Object 的起源
    js 的起源故事
    10th week task -1
    9th week -the history of program 1950~2020
    javascript统计一个字符在一段字符串出现次数
    Grid layout
    BOM DOM区别 来源
  • 原文地址:https://www.cnblogs.com/bubbler/p/2477970.html
Copyright © 2011-2022 走看看