zoukankan      html  css  js  c++  java
  • 04makefile(下)

    n  基本框架:

    a)         Make常用内嵌函数

    b)         多级目录Makefile的编写

    4.1Make常用内嵌函数

    函数调用的一般形式:$(function  arguments(参数))

    1)        $(wildcard PATTERN) :   匹配当前目录下指定模式的文件

    例子:src=$(wildcard  *.c)

    2)        模式替换函数 

    例子:$(src:.c=.o)

    3)        Shell函数:           执行shell命令

    例子:$(shell  ls  –d  */)

    4.2多级目录Makefile的编写

    4.2.1多级目录,只生成一个可执行文件的Makefile的编写

    一个比较好的例子(值得参考):

    .PHONY:  all  clean

    CC = gcc

    CFLAGS =  -Wall  –g

    BIN = main

    SUBDIRS = $(shell ls  –d  */)

    SUBSRC = $(shell find $(SUBDIRS)  -name  ‘*.c’)

    SUBOBJ = $(SUBSRC: .c=.o)

    ROOTSRC = $(wildcard *.c)

    ROOTOBJ = $(ROOTSRC:.c=.o)

    OBJS = $(ROOTOBJ)  $(SUBOBJ)

    all:$(BIN)

    $(BIN):$(OBJS)

             $(CC) $(CFLAGS) $^ -o $@

    %.o:%.c

             $(CC) $(CFLAGS) –c $< -o $@

    clean:

             rm –f $(BIN) $(OBJS)

    4.2.2 多级目录,生成多个可执行文件的Makefile的编写:

    $(CURDIR) :表示当前文件夹。

    难度较大,先简单了解下。

    4.3Makefile编写总结:

    1)一个目录下,一个可执行文件的编写;

    2)一个目录下,多个可执行文件的编写;

    3)多级目录下,一个可执行文件的编写;

    4)多级目录下,多个可执行文件的编写。

    前三种Makefile文件的编写自己应该掌握。

  • 相关阅读:
    Java 执行
    Java 反射
    Mysql 日常
    Java 引用
    Mysql insert on update
    Java Mail 异常
    HDU_5456_数位dp
    HDU_4734_数位dp
    POJ_1221_DP
    POJ_1050_最大子矩阵
  • 原文地址:https://www.cnblogs.com/xieyang/p/3919565.html
Copyright © 2011-2022 走看看