Re: [問題] Make抓頭檔案裡的變量

看板Linux作者 (19s)時間11年前 (2013/02/06 23:35), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《Damaged (被害者)》之銘言: : 是這樣的 有個頭檔案叫 version.h : #ifndef _VERSION_H_ : #define _VERSION_H_ : #define VERSION 0.1.16 應該是 #define VERSION "0.1.16" : #endif : 在makefile 裡想去抓取VERSION的數值( 0.1.16),然後存在一個變量裡 : (好比叫VERSION好了) : 那請問要怎做呢? : 試了很久還是不太行啊,對shell很不熟 : 有沒大大能幫一下的呢 謝謝 如果是我可能會先寫一個ver.mk: .PHONY: all clean all: ver clean: @rm ver ver.c ver: version.h @echo "#include <stdio.h>" > ver.c @echo "#include \"version.h\"" >> ver.c @echo "int main() {" >> ver.c @echo "printf(\"%s\", VERSION);" >> ver.c @echo "return 0;" >> ver.c @echo "}" >> ver.c @gcc -o $@ ver.c Makefile內容則大概是: tmp := $(shell make -f ver.mk) VERSION := $(shell ./ver) $(info the version is $(VERSION)) .PHONY: all clean all: @echo done clean: @make -f ver.mk clean 好處是每次version.h有更新就會自動重新編譯ver 而且可以支援像 #if 0 #define VERSION "0.1.16" #else #define VERSION "0.1.17" #endif 這樣的寫法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.230.241

02/10 11:13, , 1F
謝謝 不過好像有點太複雜了 0.0
02/10 11:13, 1F
文章代碼(AID): #1H4dXF96 (Linux)
文章代碼(AID): #1H4dXF96 (Linux)