Make系统变量

允许自由转载,但请尊重他人劳动成功,保留源地址。

作者:onebraveman

优快云:http://blog.youkuaiyun.com/idc_void
介绍:本文对Make文档中系统变量小节进行了翻译。

Make隐式规则的“处方”使用一些预定义的变量。你可以通过make参数或者设置Shell环境变量修改makefile文件中变量的值,达到无需重定义变量而改变隐式规则工作的目的。通过使用—R或者----no-builtin-variables可选项,你可以取消所有隐式规则中的变量。

例如,编译C源码的“处方”常用到$(CC) -c $(CFLAGS) $(CPPFLAGS)。这个变量的默认值是cc,命令cc -c无执行结果。通过重定义cc为“ncc”,你可以让所有隐式C编译使用“ncc”。通过重定义“CFLAGS”为“-g”,你可以向每一次编译传递”-g”可选项。所有的隐式规则,如C编译器使用“ (CC) (CFLAGS)’的所有参数,都传递给编译器。

隐式规则使用的变量可分为两类:一类是程序名(例如CC);
另一类是包含程序参数的(如CFLAGS)。如果一个变量包含多个参数,用空格分隔。

下面表格描述最常用的预定义变量。这个列表不详尽,并且这里的默认值可能与在你环境中make选取的值不同。为了得到一份你运行环境下GNU详细的预定义列表,在没有Makefiles的目录运行make -p(限于篇幅原因,只列出4个自己常用到的)。

CC
Program for compiling C programs; default ‘cc’.

CXX
Program for compiling C++ programs; default ‘g++’.

LDFLAGS
Extra flags to give to compilers when they are supposed to invoke the linker, ‘ld’, such as -L. Libraries (-lfoo) should be added to the LDLIBS variable instead.

LDLIBS
Library flags or names given to compilers when they are supposed to invoke the linker, ‘ld’. LOADLIBES is a deprecated (but still supported) alternative to LDLIBS. Non-library linker flags, such as -L, should go in the LDFLAGS variable.

Refer:
1. make系统变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值