syhd142  
日历
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
统计
  • 随笔 - 23
  • 文章 - 122
  • 评论 - 31
  • 引用 - 0

导航

常用链接

留言簿(2)

随笔档案(23)

文章分类(270)

文章档案(122)

我的豆瓣

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
很早之前就想试着写一个Makefile,一直没写,上次DH问我怎么写,刚好自己想写一个,于是就goolge了一下。

Makefile的编写规则
Makefile文件中,注释以
"#"开始
Makefile文件中最重要的是描述文件的依赖关系的说明,其一般的格式为:
target: components
TAB rule
第一行表示的是依赖关系,第二行是规则。
例如上面那个Makefile文件的第二行:main: main.o mytool1.o mytool2.o,表示我们的目标(target)main的依赖对象(components)是main.o mytool1.o mytool2.o
当依赖的对象在目标修改后修改的话,就要去执行规则行所指定的命令。
例如上面那个Makefile文件的第三行:gcc 
-o main main.o mytool1.o mytool2.o
注意:规则行中的TAB表示那里是一个TAB 键。

于是有问题了,第一个问题:Makefile的文件随便命名是可以的么,试着写了一个其它的名字,发现不行,但是貌似不区分大小写,所以写makefile也是可以的,但是一般还是按照规则来写,第一个M大写。第二个问题:如果存在多个Makefile呢?根据第一个,肯定是只有规范的命名的被识别。第三个问题:如果我当前文件下有多个C文件需要编译呢?也就是要生成两个输出文件怎么办?这个还真不懂,于是问了一下金师兄就解决了,写一个空的依赖文件就OK了。比如说我要编译当前文件夹下的Cilent.c和Server.c,这样我在第一行加个
target:Client Server
(空行,没有规则)
Client:Client.c
(TAP)gcc 
-Wall -o Client Client.c
Server:Server.c
(TAP)gcc 
-Wall -o Server Server.c
posted on 2010-11-21 12:10 Fucker 阅读(302) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © Fucker Powered by: 博客园 模板提供:沪江博客