makefile通配符
什么是通配符???
通配符是一種特殊語句,主要有星號(*)和問號(?),用來模糊搜索文件。
當查找文件夾時,可以使用它來代替一個或多個真正字符;當不知道真正字符或者懶得輸入完整名字時,常常使用通配符代替一個或多個真正的字符。 實際上用“*Not?pad”可以對應Notepad\MyNotepad【*可以代表任何字符串;?僅代表單個字符串,但此單字必須存在】;Notep[ao]d可以對應Notepad\Notepod【ao代表a與o里二選一】,其余以此類推。
通配符是一種特殊語句,主要有星號(*)和問號(?),用來模糊搜索文件。
“?”:
可以使用問號代替一個字符。如果輸入love?,查找以love開頭的一個字符結尾文件類型的文件,如lovey、lovei等。
要縮小范圍可以輸入love?.doc,查找以love開頭的一個字符結尾文件類型并.doc為擴展名的文件如lovey.doc、loveh.doc。
“*”:
可以使用星號代替零個、單個或多個字符。
如果正在查找以AEW開頭的一個文件,但不記得文件名其余部分,可以輸入AEW*,查找以AEW開頭的所有文件類型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。
要縮小范圍可以輸入AEW*.txt,查找以AEW開頭的所有文件類型并.txt為擴展名的文件如AEWIP.txt、AEWDF.txt。
目標文件:依賴文件
(tab)命令
.o文件:.c文件 .h文件
(tab)命令
遞歸調用makefile,從底層調用到頂層,這個不理解???
一直對工作流程不熟悉,這個很重要。
Makefile的工作流程
沒有指定輸出項目時,Makefile會先在所有目標中找到第一個沒有通配符的目標進行構造;
例如本文中的all,即時它是個偽目標
根據構造all的規則,需要構造(BUILD),而(BUILD),而(BUILD),而(BUILD)即是(BUILDDIR)下無后綴的可執行文件于是要構造的目標就變為了(BUILD_DIR)下無后綴的可執行文件 于是要構造的目標就變為了(BUILDD?IR)下無后綴的可執行文件于是要構造的目標就變為了(OBJ_DIR)/%.o,然后make在規則中繼續尋找,找到了一個匹配的規則$(BUILD_DIR)/%: $(OBJ_DIR)/%.o,但不幸的是該規則依賴OBJS := (SRCS:(SRCS:(SRCS:(SRC_DIR)/%.c=(OBJDIR)/下面又找到了(OBJ_DIR)/%.o),于是繼續尋找 下面又找到了(OBJD?IR)/下面又找到了(OBJ_DIR)/%.o: (SRCDIR)/完成后回到上層進行對.o文件的鏈接,然后繼續回到上層,重復這個過程使得對于每一個(SRC_DIR)/%.c,現在不需要繼續尋找了,即執行這個規則下的語句進行編譯但不鏈接 完成后回到上層進行對.o文件的鏈接,然后繼續回到上層,重復這個過程使得對于每一個(SRCD?IR)/完成后回到上層進行對.o文件的鏈接,然后繼續回到上層,重復這個過程使得對于每一個(BUILD)中的目標都得到了生成。
linux查看目錄樹形結構tree命令相關
安裝tree命令。
#yum -y install tree
查看是否安裝成功。
#yum list installed tree
直接執行tree命令看看。
#tree
如果當前目錄下眾多內容,直接tree命令會很慘。
執行命令:
#tree -L 1
只查看當前目錄下內容
總結
以上是生活随笔為你收集整理的makefile通配符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七桥问题和欧拉道路
- 下一篇: PayPal美元和人民币之货币转换问题