zoukankan      html  css  js  c++  java
  • 转:简单通用的一则makefile .

    在linux下面下写程序少不了写makefile,如果每个文件都按部就班的详细的写编译脚本,效率势必低下;makefile提供了自动化变量、模式规则等,稍加利用可以提高写makefile的效率。下面列举一个简单通用的makefile书写规则:
     
    SRCS = $(wildcard *.c)
    OBJS = $(SRCS:.c = .o)
    CC = gcc
    INCLUDES = -I/usr/your_path/include
    LIBS = -L/usr/your_path/lib
    CCFLAGS = -g -Wall -O0

    yourApp : $(OBJS)
     $(CC) $^ -o $@ $(INCLUDES) $(LIBS)

    %.o : %.c
     $(CC) -c $< $(CCFLAGS)

    clean:
     rm -rf OBJS

    L1:$(wildcard *.c)将把当前目录下面的下面的以.c结尾的文件名展开,即SRCS这个变量的值就是这个当前目录下面的所有.c文件的文件名所组成的串,文件名间用空格分割;

    L2:.c替换为.o后的串;

    L3——L6:变量的定义;

    L9:$^——依赖目标的集合,$@——编译目标;

    L12:$<——依赖目标的第一个目标名;如果目标以模式定义的,则将是一个一个取出来的目标集合;

  • 相关阅读:
    uva 1374 快速幂计算
    uva 1343 非原创
    uva 11212
    uva 10603
    路径寻找问题……!
    bzoj 1008: [HNOI2008]越狱
    bzoj 1010: [HNOI2008]玩具装箱toy
    dp斜率优化小计
    bzoj 1002[FJOI2007]轮状病毒
    hihocoder #1114
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/3673672.html
Copyright © 2011-2022 走看看