Makefile: $^ $^ $@ 与 ..c.o

转载 2011年04月11日 10:07:00

Makefile: $^ $^ $@ 与 ..c.o

2010-05-16 15:19

gcc -c main.c 

gcc -c mytool1.c 

gcc -c mytool2.c 

gcc -o main main.o mytool1.o mytool2.o

 

/****第1个Makefile**************************************************************************************************/

 

Makefile文件 

main:main.o mytool1.o mytool2.o 

gcc -o main main.o mytool1.o mytool2.o 

main.o:main.c mytool1.h mytool2.h 

gcc -c main.c 

mytool1.o:mytool1.c mytool1.h 

gcc -c mytool1.c 

mytool2.o:mytool2.c mytool2.h 

gcc -c mytool2.c

 

/******************************************************************************************************/

 

 

Makefile中也#开始的行都是注释行.Makefile中最重要的是描述文件的依赖关系的说

明.一般的格式是:

 

target: components 

TAB rule

 

Makefile有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是:

$@--目标文件,$^--所有的依赖文件

,$<--第一个依赖文件.

如果我们使用上面三个变量,那么我们可以简化我们的

Makefile文件为:

 

/**第2个Makefile****************************************************************************************************/

 

# 这是简化后的

Makefile

main:main.o mytool1.o mytool2.o

gcc -o $@ $^

main.o:main.c mytool1.h mytool2.h

gcc -c $<

mytool1.o:mytool1.c mytool1.h

gcc -c $<

mytool2.o:mytool2.c mytool2.h

gcc -c $<

 

/******************************************************************************************************/

 

经过简化后我们的Makefile是简单了一点,不过人们有时候还想简单一点.这里我们学习一个Makefile的缺省规则

 

..c.o:

gcc -c $<

 

这个规则表示所有的 .o文件都是依赖与相应的.c文件的.例如

 

mytool.o依赖于mytool.c

 

这样 Makefile还可以变为:

 

 

/**第3个Makefile****************************************************************************************************/

 

Makefile 

main:main.o mytool1.o mytool2.o 

gcc -o $@ $^ 

..c.o: 

gcc -c $<

 

/******************************************************************************************************/

makefile .c.o的说明

假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include "mytool1.h" #include "mytool2.h" int main(int argc,char ...
  • dongzhongshu
  • dongzhongshu
  • 2010年05月27日 16:02
  • 9216

makefile 中 $@ $^ %< 使用

这篇文章介绍在LINUX下进行C语言编程所需要的基础知识。在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系...
  • kesaihao862
  • kesaihao862
  • 2012年03月08日 13:39
  • 87787

Makefile编译目录下多个文件以及函数wildcard用法

编译多个c文件一般有两个功能,一个是每个c文件都有main函数,就是说每个c文件的可执行文件是独立的,各自是各自的;第二个是多个c文件用来编译成一个可执行文件。 首先说第一个,内容如...
  • hunanchenxingyu
  • hunanchenxingyu
  • 2013年09月30日 19:15
  • 18074

makefile $@ $^ $< .c.o变量练习

假设我们有下面这样的一个程序,源代码如下:  /* main.c */ #include "mytool1.h" #include "mytool2.h" int...
  • YEYUANGEN
  • YEYUANGEN
  • 2014年07月04日 16:40
  • 2720

Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:

original url: http://my.oschina.net/u/1413984/blog/199029 摘要 Makefile有三个非常有用的变量。分别是$@,$^,$ ...
  • junmuzi
  • junmuzi
  • 2016年01月20日 23:23
  • 1017

makefile %.o:%.c

下面这个例子表示了,把所有的[.c]文件都编译成[.o]文件. %.o : %.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $ http://blog.sina.com.c...
  • windowsLearner
  • windowsLearner
  • 2013年02月01日 14:01
  • 8878

linux下gcc下makefile文件的编写

假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include “mytool1.h” #include “mytool2.h” int main(int argc,c...
  • zhu2695
  • zhu2695
  • 2016年05月20日 00:33
  • 219

Linux makefile 教程 非常详细,且易懂

            最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。            于是google到了以...
  • liang13664759
  • liang13664759
  • 2007年09月04日 09:36
  • 618074

Linux 应用---make及makefile的编写

Make 在我们做linux 开发中是必不可少的一部分,它在我们编写大型项目工程文件中起到非常大的作用。      Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳...
  • zqixiao_09
  • zqixiao_09
  • 2015年12月23日 17:40
  • 8773

Makefile: $^ $^ $@ 与 ..c.o

Makefile: $^ $^ $@ 与 ..c.o 2010-05-16 15:19 gcc -c main.c  gcc -c mytool1.c  gcc -c mytool2.c  ...
  • u012138828
  • u012138828
  • 2014年02月11日 16:21
  • 366
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Makefile: $^ $^ $@ 与 ..c.o
举报原因:
原因补充:

(最多只允许输入30个字)