Makefile之變數小解

2021-06-27 03:26:22 字數 1733 閱讀 8284

變數對每乙個程式設計師再熟悉不過,每乙個程式語言都有自己的變數,makefile也不例外,下面就讓我們來看一下makefile怎麼定義和使用變數的吧!

這裡我們先寫乙個例子:

標頭檔案:apute.h

#include

#include

#include

第乙個c檔案foo.c,根據位址列印傳遞的字串

#include "apute.h"

void foo(char * str)

第二個c檔案bar.c,根據傳遞的兩個變數計算之和並列印

#include "apute.h"

void bar(int a, int b)

第三個c檔案main.c,傳遞引數,呼叫上述兩個函式:

執行結果:

從上述例子我們可以看到,乙個變數的定義很簡單,就是乙個名字(變數名)後面跟上乙個等號,

然後在等號的後面放這個變數所期望的值。對於變數的引用,則需要採用$(變數名)或者$這種模式。

在這裡我們引用了變數cc來指定編譯器,引入了objects來儲存.o檔案,當然你也可以引入更多的變數,比如

rm=rm,用於指定刪除檔案的命令等等。這樣引入變數,加入我們需要更改編譯器,只需更改變數賦值的地方,

不必更改每乙個地方,非常方便。

接下來我們看一下自動變數:

在我們編寫makefile,有些時候目標和先決條件的名字會在規則的命令中多次出現,而且,如果改變了目標或是依賴檔案,

命令中就得全部跟著改。這就需要用到makefile中的自動變數,它們包括:

依舊是寫乙個小例子來測試一下:

執行結果是:

這裡我們可以輕鬆的驗證自動變數$@,$^,$《所指何意。

現在我們使用自動變數改寫一下第乙個例子,

依舊ok!這樣看著多少顯著有些專業點。

makefile中還有一些特殊變數,第乙個就是 make 變數,它表示的是 make 命令名是什麼。當我們需要在 makefile 中呼叫另乙個

makefile 時需要用到這個變數,採用這種方式,有利於寫乙個容易移植的 makefile。

執行結果:

make = make

第二個makecmdgoals,它表示當前使用者輸入的make目標是什麼

執行結果:

從測試結果看來,makecmdgoals 指的是使用者輸入的目標,當我們只執行 make 命令時, 雖然根據makefile 的語法,

第乙個目標將成為預設目標,即all 目標,但makecmdgoals 仍然是空,而不是 all,這一點我們需要注意。

PHP初學之變數

一 定義 變數,顧名思義,可以變化的玩意,他可以是1,也可以是2,還可以是1 2,可以是很多值,甚至你如果真的很閒的話,還可以讓他沒有值,那麼,他到底怎麼理解呢?答案是 變數是乙個儲存資料的容器,何所謂容器?我的理解是,丫就是乙個水缸,我可以放水,也可以放糧食,還可以藏小三。又或是程式猿的女盆友,美...

c 之變數型別

變數其實只不過是程式可操作的儲存區的名稱。c 中每個變數都有指定的型別,型別決定了變數儲存的大小和布局,該範圍內的值都可以儲存在記憶體中,運算子可應用於變數上。變數的名稱可以由字母 數字和下劃線字元組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的,因為 c 是大小寫敏感的。基於前一章講解的...

PHP之變數函式

php 支援變數函式的概念 使用者可以在乙個變數的後面新增 這時php 會尋找與變 量名同名的函式,並執行它。也就是說,可以通過改變變數的值來呼叫不同的函式。例如,下面的例子中首先宣告了兩個函式foo 和bar 然後初始化這兩個變數,它們的值分別 為foo 和bar,最後使用變數呼叫函式 foo.p...