首页 技术 正文
技术 2022年11月15日
0 收藏 830 点赞 2,514 浏览 827 个字

两个隐含规则;

  1. 将所有的name.o的依赖自动推导为name.c并使用规则$(CC) -c $(FLAGS) $(CPPFLAGS)得到目标。这个规则中只有-c是隐含规则中有的,后面两个变量是留给用户使用的,如果-c不够用,可以通过设置他们来改变这条隐含规则,有了这条隐含规则,下面的写法是被允许的
res:main.o fcn.o
.PHONY:clean
clean:
rm *.o
  1. name目标依赖于name.o,其生成命令是: $(CC) $(LDFLAGS) name.o $(LOADLIBES) $(LDLIBS)。这个规则对于多个被依赖的目标文件同样有效,例如:
name : y.o z.o

并且"name.c"、"y.c"和"z.c"都存在,则隐含执行:

cc -c name.c -o name.o
cc -c y.c -o y.o
cc -c z.c -o z.o
cc name.o y.o z.o -o name
rm -f name.o
rm -f y.o
rm -f z.o

隐含规则变量

隐含规则中使用了很多变量,我们可以通过设置这些变量来在一定程度上控制隐含规则,我们可以在Makefile的文件中为这些变量重新赋值,也可以在命令行中传入或者在环境变量中写入。我们还可以通过-R来取消我们指定的变量的值对隐含规则的作用

AR函数库打包程序。默认命令是“ar”。

AS汇编语言编译程序。默认命令是“as”。

CCC语言编译程序。默认命令是“cc”。

CXXC++语言编译程序。默认命令是“g++”。

CPPC程序的预处理器(输出是标准输出设备)。默认命令是“$(CC) –E”。

RM删除文件命令。默认命令是“rm –f”。

ARFLAGS函数库打包程序AR命令的参数。默认值是“rv”。

ASFLAGS汇编语言编译器参数。(当明显地调用“.s”或“.S”文件时)。

CFLAGSC语言编译器参数。

CXXFLAGSC++语言编译器参数。

CPPFLAGSC预处理器参数。( C 和 Fortran 编译器也会用到)。

LDFLAGS链接器参数。(如:“ld”)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,116
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,588
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,434
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,204
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,840
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,925