博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[编译] 1、第一个makefile简单例子
阅读量:6609 次
发布时间:2019-06-24

本文共 1128 字,大约阅读时间需要 3 分钟。

 

前言

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

 

正文

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

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

其中a.c为:

1 #include
2 int main() 3 { 4 int i,j; 5 for(i=0;i<10;i++) 6 { 7 for(j=2*i+1;j>0;j--) 8 { 9 printf("#");10 }11 printf("\n");12 }13 }

其中makefile为:

其格式为:

1 a:a.o                   #linK 2         gcc a.o -o  a 3 a.o:a.s                 #汇编Assembling 4         gcc -c a.c -o a.o  5 a.s:a.i                 #编译 6         gcc -S a.i -o a.s 7 a.i:a.c                 #pre-processing 8         gcc -E a.c -o a.i 9 10 11 run:12         ./a13 clear:14         rm -rf a.o a.s a.i a

 

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

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

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

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

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

 

11、12行是什么鬼?

是伪目标!

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

 

效果如下:

本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/5081291.html,如需转载请自行联系原作者

 

你可能感兴趣的文章
《转》常用Petri网模拟软件工具简介
查看>>
unset MAILCHECK
查看>>
中文版Windows Server 2012 R2更改为英文显示语言
查看>>
教爸爸妈妈用微信
查看>>
SQLite中的PRAGMA语句攻略
查看>>
SecureCRT常用设置
查看>>
【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)
查看>>
一个完整推荐系统的设计实现-以百度关键词搜索推荐为例
查看>>
java call sap
查看>>
理解传说中的roll、yaw、pitch
查看>>
SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)
查看>>
github上值得关注的前端项目
查看>>
Mac OS 后台服务注册
查看>>
redis 管道
查看>>
对于思考小端和大端字节顺序
查看>>
lua--从白开始(2)
查看>>
boost库学习之开篇
查看>>
eclipse建立cocos2d-x开发环境
查看>>
TPS和QPS的区别
查看>>
netbeans打包成jar
查看>>