GNU make manual 翻译(二十四)

简介:
继续翻译

复制代码
   When a `.c' file is used automatically in this way, it is also 
automatically added to the list of prerequisites.  We can therefore omit 
the `.c' files from the prerequisites, provided we omit the recipe.                    
                    
   Here is the entire example, with both of these changes, and a 
variable `objects' as suggested above:                    
                    
     objects = main.o kbd.o command.o display.o \                    
               insert.o search.o files.o utils.o                    
                    
     edit : $(objects)                    
             cc -o edit $(objects)                    
                    
     main.o : defs.h                    
     kbd.o : defs.h command.h                    
     command.o : defs.h command.h                    
     display.o : defs.h buffer.h                    
     insert.o : defs.h buffer.h                    
     search.o : defs.h buffer.h                    
     files.o : defs.h buffer.h command.h                    
     utils.o : defs.h                    
                    
     .PHONY : clean                    
     clean :                    
             rm edit $(objects)                    
复制代码
当一个.c 文件被这样自动使用的时候,它也将被自动加入到 前提条件里。

因此在我们省略掉片段的时候,我们也可以在前提条件中省略掉 .c 文件。

下面就是一个完整的例子,包含上面所说的改变,和对 变量 objects的使用:

objects = main.o kbd.o command.o display.o \ 
insert.o search.o files.o utils.o

edit : $(objects)
cc -o edit $(objects)

main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h

.PHONY : clean
clean :
rm edit $(objects)
 

后文待续



本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/09/13/2683537.html,如需转载请自行联系原作者
目录
相关文章
|
Linux C语言
make: gcc:命令未找到
make: gcc:命令未找到
make: gcc:命令未找到
|
编译器 Linux 开发工具
|
9月前
|
存储 编译器 C语言
深入理解GCC 和 G++ 编译器
GCC 和 G++ 是 GNU 工具链中的核心编译器,支持 C 和 C++ 程序开发。本文详细介绍其编译流程、常用选项及动态链接与静态链接的区别。编译过程分为预处理、编译、汇编和链接四个阶段,每个阶段有特定任务和命令选项。常用选项如 `-E`、`-S`、`-c` 和 `-o` 分别用于预处理、生成汇编代码、生成目标文件和指定输出文件。动态链接节省空间且易于更新,但依赖运行时库;静态链接独立高效,但文件较大且更新困难。合理选择优化选项(如 `-O0` 至 `-O3`)可提升程序性能。掌握这些知识有助于开发者更高效地编写、调试和优化代码。
382 23
深入理解GCC 和 G++ 编译器