Linux学习笔记-Makefile中的变量及函数
Makefile中的變量
此處的變量不是C/C++,Java等中的變量(認為他是一個字符串就闊以了)
一般變量名用大寫字母來寫,如下所屬:
SUBDIR = src xml
SUBDIR += osapi
(感覺這個和Qt里面的pro加模塊的差不多)
echo命令,這條命令和php中的echo差不多
定義一個SUBDIR變量:
1.用=號定義一個變量,并且賦值(等號兩側可以加一個空格);
2.用+=追加字符串
3.用$(SUBDIR)取得到變量的值(要加小括號)
如下面的Makefile代碼:
#this is an annotationSUBDIR=src xml SUBDIR+=osapitest1:echo $(SUBDIR)運行截圖如下:
注意:在@符號后,就可以不顯示命令本身,直接輸出
Makefile源碼如下:
#this is an annotationSUBDIR=src xml SUBDIR+=osapitest1:@echo $(SUBDIR)運行截圖如下:
特殊的變量:
$@指代target
$^指代dependencies依賴項列表
$<指代依賴項列表的第一列
Makefile源碼如下:
#this is an annotationSUBDIR=src xml SUBDIR+=osapitest1:@echo $(SUBDIR)test2:echo $@test3: main.cpp first.cpp second.cppecho $^test4: main.cpp first.cpp second.cppecho $<程序運行截圖如下:
?
Makefile中的函數
與C/C++里面的函數不一樣,他是內部預定的函數
?
Makefile中有一些預定義的函數
$(函數名 參數列表)
函數名:Makefile內部自帶的函數
參數列表:以逗號分開另,函數名和參數之間以空格分開
例如:
PWD=$(shell pwd)
CXX_SOURCE=$(wildcard ./*.cpp)
?
【注意:Makefile里面好像必須加shell】
如下的Makefile源碼:
#this is an annotationSUBDIR=src xml SUBDIR+=osapiPWD=$(shell pwd) CXX_SOURCE=$(wildcard *.cpp)test1:@echo $(SUBDIR)test2:echo $@test3: main.cpp first.cpp second.cppecho $^test4: main.cpp first.cpp second.cppecho $<test5:@echo $(PWD)test6:@echo $(CXX_SOURCE)運行截圖如下:
總結
以上是生活随笔為你收集整理的Linux学习笔记-Makefile中的变量及函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV文档阅读笔记-cvtColo
- 下一篇: Linux学习笔记-调用pthead_c