07月26, 2016

强大的Makefile

一、make 规则

Target: Dependencies
    <TAB>Commands

例子:

main.o: main.c common.c common.h
    gcc -c main.c

二、建立 Makefile (这里不带后缀名,并且根据习惯首字母大写)

输入以下内容:

clean: 
    @echo hello
    echo hello

ps: 在终端输入命令:make clean 执行(但是需要在Makefile的同级目录) 如果是在windows环境下,你也可以使用nmake进行测试,但是我相信在windows就不用这种方式了。

  1. clean: 定义执行的make的命令。
  2. @echo: 直接输出“hello”字符串,但是不打印代码。
  3. echo: 输出“hello”字符串,并且打印代码。

执行结果如下:

Mou icon

三、通过 Makefile 去编译并且执行C语言代码

(1) 首先创建main.c源代码文件,这个不难。

#include <stdio.h>

int main()
{
    printf("-----------\n");
    printf("hello\n");
    printf("-----------\n");
}

(2) 创建我们需要的Makefile文件,内容如下。

targets = main

$(targets): main.c 
    gcc main.c -o main.o
    ./main.o

clean:
    rm *.o

ps: 这里出现了新语法:变量定义 变量的声明--> targets = main.o 引用变量--> $(targets) 等价于:

main: main.c 
    gcc main.c -o main.o
    ./main.o

clean:
    rm *.o

(3) 执行效果。

Mou icon

ps: 这里执行了make && make clean(等价于:make main && make clean)

  1. make不带参数,默认执行第一条命令。
  2. &&:左边命令执行成功,就执行右边的命令(和程序中的&&是一样的效果)。

本文链接:http://www.60sky.com/post/power-by-makefile.html

-- EOF --

Comments