Makefile第二講:打印出內容和使用變量


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

 

main.cpp

#include <iostream> using namespace std; int main() { cout <<"Hello makefile"; return 0; } 

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 
  • @echo "開始生成最終執行文件,請稍候..."這一句便是將一條信息輸出到終端,為何前邊有個@符號呢?有了這個符號該命令本身就不會輸出到終端(不理解,自己去掉或者加上@符號試試),實驗證明,字符串可以不加引號。
  • 看到OBJS = main.o了嗎?這就是變量的定義,變量定義遵循一般語言的變量命名規則,可以是_$開頭,變量的值無論是字符串還是什么,都可以不要引號;有一種情況必須不要引號,就像上例這種,具體的….自己嘗試吧。
  • $(OBJS)這是對變量的調用。
  • 還可以把shell命令的返回值作賦給變量,例如將當前目錄的路徑賦值給變量:CURRENT_DIR = $(shell pwd)


免責聲明!

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



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