Make系統變量

允許自由轉載,但請尊重他人勞動成功,保留源地址。

作者: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個自己常用到的)。

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系統變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章