您的位置:首页 > 其它

[编译] 1、第一个makefile简单例子

2015-12-28 00:18 267 查看
前言

本篇用一个最简单的例子引入makefile,教你编写第一个makefile

正文

在Download/aa文件夹下有a.c和makefile文件

litao@litao:~/Downloads/aa$ ls
a.c  makefile


其中a.c为:

#include<stdio.h>
int main()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=2*i+1;j>0;j--)
{
printf("#");
}
printf("\n");
}
}


其中makefile为:

其格式为:

a:a.o                   #linK
gcc a.o -o  a
a.o:a.s                 #汇编Assembling
gcc -c a.c -o a.o
a.s:a.i                 #编译
gcc -S a.i -o a.s
a.i:a.c                 #pre-processing
gcc -E a.c -o a.i

run:
./a
clear:
rm -rf a.o a.s a.i a


makefile文件的基本单元是规则。一条规则指定一个或多个目标文件,目标文件后面跟的是编译生成该目标文件所依赖的文件或模块,最后是生成或更新目标文件所用的命令。格式如下:



其中[]中的内容是可选的。

上面第1、2行构成一个规则~

特别注意生成目标文件所用命令必须以Tab键开头(如果某一行以tab键开头,make就认为是命令)

在依赖文件列表后面加一个;号可以跟命令,如下:



11、12行是什么鬼?

是伪目标!

在makefile文件中,目标文件可以分为两类:实目标和伪目标。实目标文件是真正要生成的、以文件的形式存放在硬盘上的目标。伪目标不要求生成实际文件,而是为了让make执行一些辅助命令,如打印一些信息、删除无用中间文件等,这里的run是运行生成a程序,clear是清除所有生成文件~

效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: