Makefile中的隐含变量

时间:2021-12-06 20:41:47

 

 

隐含规则中所使用的变量(隐含变量)分为两类:1. 代表一个程序的名字(例如:CC代表了编译器这个可执行程序)。2. 代表执行这个程序使用的参数(例如:变量CFLAGS),多个参数使用空格分开。当然也允许在程序的名字中包含参数。但是这种方式建议不要使用。

以下是一些作为程序名的隐含变量定义:

代表命令的变量

AR

函数库打包程序,可创建静态库.a文档。默认是ar

AS

汇编程序。默认是as

CC

C编译程序。默认是cc

CXX

C++编译程序。默认是g++

CO

RCS中提取文件的程序。默认是co

CPP

C程序的预处理器(输出是标准输出设备)。默认是$(CC) -E

FC

编译器和预处理Fortran Ratfor 源文件的编译器。默认是f77

GET

SCCS中提取文件程序。默认是get

LEX

Lex 语言转变为 C Ratfo 的程序。默认是lex

PC

Pascal语言编译器。默认是pc

YACC

Yacc文法分析器(针对于C程序)。默认命令是yacc

YACCR

Yacc文法分析器(针对于Ratfor程序)。默认是yacc -r

MAKEINFO

转换Texinfo源文件(.texi)到Info文件程序。默认是makeinfo

TEX

TeX源文件创建TeX DVI文件的程序。默认是tex

TEXI2DVI

Texinfo源文件创建TeX DVI 文件的程序。默认是texi2dvi

WEAVE

转换WebTeX的程序。默认是weave

CWEAVE

转换C Web TeX的程序。默认是cweave

TANGLE

转换WebPascal语言的程序。默认是tangle

CTANGLE

转换C Web C。默认是ctangle

RM

删除命令。默认是rm -f

命令参数的变量

下边的是代表命令执行参数的变量。如果没有给出默认值则默认值为空。

ARFLAGS

执行AR命令的命令行参数。默认值是rv

ASFLAGS

执行汇编语器AS的命令行参数(明确指定.s.S文件时)。

CFLAGS

执行CC编译器的命令行参数(编译.c源文件的选项)。

CXXFLAGS

执行g++编译器的命令行参数(编译.cc源文件的选项)。

COFLAGS

执行co的命令行参数(在RCS中提取文件的选项)。

CPPFLAGS

执行C预处理器cc -E的命令行参数(C Fortran 编译器会用到)。

FFLAGS

Fortran语言编译器f77执行的命令行参数(编译Fortran源文件的选项)。

GFLAGS

SCCS get程序参数。

LDFLAGS

链接器(如:ld)参数。

LFLAGS

Lex文法分析器参数。

PFLAGS

Pascal语言编译器参数。

RFLAGS

Ratfor 程序的Fortran 编译器参数。

YFLAGS

Yacc文法分析器参数。