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.變數的模式替換 使用 保留變數值中的指定字串,替換替他...