摘要 `@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)
