Make系统变量

来源:互联网 发布:剑灵龙男捏脸数据 编辑:程序博客网 时间:2024/06/09 22:06

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

作者:onebraveman

CSDN:http://blog.csdn.net/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个自己常用到的)。

CCProgram for compiling C programs; default ‘cc’.CXXProgram for compiling C++ programs; default ‘g++’.LDFLAGSExtra 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.LDLIBSLibrary 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系统变量

0 0