码迷,mamicode.com
首页 > 系统相关 > 详细

实例讲解Linux下的makefile

时间:2014-12-11 17:07:47      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   sp   on   文件   div   log   

 

1、程序代码结构如下

makefile/
|-- Makefile
|-- haha.c
`-- hehe.c

  1.1、需要被编译的源代码如下

$ cat haha.c 
#include "stdio.h"

int main()
{
    printf("ha ! ha !\n");

    return 0;
}
$ cat hehe.c 
#include "stdio.h"

int main()
{
    printf("he ~ he ~\n");

    return 0;
}

  1.2、makefile的脚本如下

$ cat Makefile 
.PHONY : dummy

CFLAGS    = 
LDFLAGS    = 

ALL_FILES    = hehe haha

all : $(ALL_FILES)

hehe : hehe.o
    gcc -o hehe hehe.o

hehe.o : hehe.c
    gcc -c hehe.c -o $@

haha : haha.o
    gcc -o haha haha.o

haha.o : haha.c
    gcc -c haha.c -o haha.o

clean : dummy
    rm -rf *.o
    rm -rf $(ALL_FILES)

  1.3、执行make命令后的编译结果

$ make
gcc -c hehe.c -o hehe.o
gcc -o hehe hehe.o
gcc -c haha.c -o haha.o
gcc -o haha haha.o
-rwxrwxr-x 1 normal normal 4940 12-11 16:08 haha
-rw-rw-r-- 1 normal normal   72 12-11 16:03 haha.c
-rw-rw-r-- 1 normal normal  872 12-11 16:08 haha.o
-rwxrwxr-x 1 normal normal 4940 12-11 16:08 hehe
-rw-rw-r-- 1 normal normal   72 12-11 16:03 hehe.c
-rw-rw-r-- 1 normal normal  872 12-11 16:08 hehe.o
-rw-rw-r-- 1 normal normal  279 12-11 16:04 Makefil

这样我们需要的程序就编译出来了。文件结构如下

makefile/
|-- Makefile
|-- haha
|-- haha.c
|-- haha.o
|-- hehe
|-- hehe.c
`-- hehe.o

多出来了4个文件,haha、haha.o、hehe、hehe.o

  1.4、执行结果

$ ./haha 
ha ! ha !
$ ./hehe 
he ~ he ~

  1.5 执行命令make clean,结果如下

$ make clean
rm -rf *.o
rm -rf hehe haha

多出来的文件都被删除了,接下来对makefile的脚本文件进行一下讲解。

2、下面是对makefile文件的讲解

  2.1、在make命令执行后,会在当前目录下搜索makefile、Makefile。如果当前目录没有这个两个文件的话就会报错:找不到makefile

$ make
make: *** 没有指明目标并且找不到 makefile。 停止。

 

  2.2、现在把Makefile改名,用参数-f 来指定要加载的脚本文件也是可以顺利编译的。

$ mv Makefile realmake
$ make -f realmake 
gcc -c hehe.c -o hehe.o
gcc -o hehe hehe.o
gcc -c haha.c -o haha.o
gcc -o haha haha.o

  2.3、

 

实例讲解Linux下的makefile

标签:style   blog   io   color   sp   on   文件   div   log   

原文地址:http://www.cnblogs.com/fengbohello/p/4157864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!