Makefile列印變數值

2021-09-25 09:23:15 字數 1450 閱讀 1094

makefile第二講:列印出內容和使用變數

摘要 `@echo "開始生成最終執行檔案,請稍候..."`這一句便是將一條資訊輸出到終端,為何前邊有個`@`符號呢?有了這個符號該命令本身就不會輸出到終端(不理解,自己去掉或者加上`@`符號試試),實驗證明,字串可以不加引號。 看到`objs = main.o`了嗎?這就是變數的定義,變數定義遵循一般語言的變數命名規則,可以是`_`和`$`開頭,變數的值無論是字串還是什麼,都可以不要引號;有一種情況必須不要引號,就像上例這種,具體的....自己嘗試吧。

makefile

main.cpp

#include using namespace std;

int main()

makefile(還是第一節中的**,稍作修改)

objs = main.o

test:$(objs)

@echo "開始生成最終執行檔案,請稍候..."

g++ main.o -o test

main.o:main.cpp

g++ -c main.cpp -o main.o

clean:

rm main.o test

$(warning $(***_service)) // ***_service是makefile中的變數

$(warning   st40_imports is $(st40_imports)) 

變數名,一定要加括號。不加的話,可以發現前面都無法輸出變數的值。

1、輸出列印資訊的方法是:$(warning ***xx),$(error ***xx)

2、輸出列印變數值的方法是:$(warning  $(***))

在makefile中列印警告或者錯誤訊息的方法:

$(warning ***xx)或者$(error ***xx) 

輸出變數方式為:

$(warning  $(***))

$(warning  $(***))   列印變數的值

1,使用info/warning/error增加除錯資訊

方法1: $(info, "here add the debug info")

但是此不能列印出.mk的行號

方法2: $(warning "here add the debug info")

方法3: $(error "error: this will stop the compile")

這個可以停止當前makefile的編譯

方法4: 列印變數的值

$(info $(target_device) )

2,使用echo增加除錯資訊(echo只能在target:後面的語句中使用,且前面是個tab)

方法1: @echo "start the compile*********************xx"

方法2: @echo $(files)

python變數值 Python變數值轉變量

今天用python讀取乙個有很多欄位的配置檔案,配置檔案中的格式類似 pidstart 2600 startfid 47 starttid 450 startfirst 1 message 一般會想到的是 config open configpath,r for item in config set...

除錯makefile 檢視其中的變數值

作業系統 ubuntu10.04 在編譯uboot,linux kernel的時候,都需要用到makefile,那麼makefile的執行流程,其中的各個變數的值該怎麼獲取呢?執行命令 make p xx 在對應的路徑 下,執行makefile,p,print data base print mak...

Makefile中的變數值的替換 一

1.使用指定字串替換變數中的字尾字元 串 格式 var a b 或 注意 替換表示式中不能有空格 例 src acc bcc ccc obj src cc o test echo obj obj make test輸出結果 ao bo co 2.變數的模式替換 使用 保留變數值中的指定字串,替換替他...