makefile裡的一條sed命令

2021-05-22 11:04:37 字數 566 閱讀 7747

看gnu make的makefile,在自動依賴跟蹤裡用到了一條sed命令

sed 's,/($*/)/.o[ :]*,/1.o $@ : ,g' < $@.$$$$ > $@;

順便學習一下sed編輯器

%.d: %.c

@set -e; rm -f $@; /

$(cc) -m $(cppflags) $< > $@.$$$$

; /sed 's,/($*/)/.o[ :]*,/1.o $@ : ,g' < $@.$$$$

> $@; /

rm -f $@.$$$$

通過gcc等編譯器找到.c檔案的依賴的標頭檔案,放到$@.$$$$裡$@就是.d檔案 $$$$是臨時檔案

$@.$$$$ 的內容可能是   main.o : main.c defs.h

這句話的意思是:從$@.$$$$裡讀取每一行,處理完了放到$@裡。怎麼處理呢?就是把'main.o : '替換成 'main.o main.dep :'

於是main.o : main.c defs.h就變成了

main.o main.dep : main.c defs.h

Makefile裡的sed指令

在makefile裡經常看到sed指令,經常看到替換功能,今天寫了個makefile來學習下sed的替換功能,makefile如下 test abcdefghisdabcjsdlfkj test2 test sed e s abc 123 g debug echo test echo test2 然...

makefile裡經常看到sed指令

問題 這裡,我們給出了乙個模式規則來產生 d 檔案 d c set e rm f cc m cppflags sed s,o 1.o g rm f 這個規則的意思是,所有的 d 檔案依賴於 c 檔案,rm f 的意思是刪除所有的目標,也就是 d 檔案,第二行的意思是,為每個依賴檔案 也就是 c 檔案...

查詢資料的上一條和下一條

查詢當前資料的下一條 select from 表 where id 當前資料的id order by id asc limit1 查詢當前資料的上一條 select from 表 where id 當前資料的id order by id asc limit 1 查詢當前資料的下一條 select f...