Makefile里面打印信息


  Makefile的規則相對來說還是比較復雜的,上手不容易,沒有系統研究過,往往搞不清楚狀況。如果掌握了基本的調試手段,那對我們寫出正確的Makefile會非常有幫助。而在Makefile中,最重要的調試手段莫過於輸出信息。

  Makefile中需要打印信息,可以通過如下方法:

  $(info info text)、$(warning warning text)或者$(error error text)

  示例:

CXX = g++ 
CompileOpt = -g -std=gnu++11
LinkOpt = -lpthread  $(asan)

Target = main

$(Target) : main.o memory_leak.o
    $(CXX) main.o memory_leak.o -o $(Target) $(LinkOpt)
    $(info info text)
    $(warning warn text)
    $(warning $(asan))
    $(error error text)

main.o : main.cpp memory_leak.h
    $(CXX) -c $(CompileOpt) main.cpp

memory_leak.o : memory_leak.cpp memory_leak.h
    $(CXX) -c $(CompileOpt) memory_leak.cpp


clean:
    rm main.o memory_leak.o

  編譯輸出:

$ make asan='-fsanitize=leak -fsanitize=address'                                                                                                             
g++ -c -g -std=gnu++11 main.cpp
g++ -c -g -std=gnu++11 memory_leak.cpp
info text
Makefile:11: warn text
Makefile:11: -fsanitize=leak -fsanitize=address
Makefile:11: *** error text.  Stop.

  可以看到,info、warning、error三種輸出各有不同,其中error輸出甚至會中斷編譯過程。可以根據不同的需求,用不同的方式輸出信息,寫出滿意的Makefile


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM