Makefile第二講:打印出內容和使用變量
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
摘要 `@echo "開始生成最終執行文件,請稍候..."`這一句便是將一條信息輸出到終端,為何前邊有個`@`符號呢?有了這個符號該命令本身就不會輸出到終端(不理解,自己去掉或者加上`@`符號試試),實驗證明,字符串可以不加引號。 看到`OBJS = main.o`了嗎?這就是變量的定義,變量定義遵循一般語言的變量命名規則,可以是`_`和`$`開頭,變量的值無論是字符串還是什么,都可以不要引號;有一種情況必須不要引號,就像上例這種,具體的....自己嘗試吧。
Makefile
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)