Make抓頭檔案裡的變量 - Linux

Charlie avatar
By Charlie
at 2013-02-06T23:35

Table of Contents

※ 引述《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

這樣的寫法

--
Tags: Linux

All Comments

Skylar Davis avatar
By Skylar Davis
at 2013-02-10T08:18
謝謝 不過好像有點太複雜了 0.0

EeePC(4GB版本)的Linux

Olga avatar
By Olga
at 2013-02-06T18:20
拿出閒置多年的7吋EeePC,4GB版本 當時有改安裝成XP 現在想要恢復成Linux 想請問 如果還原華碩這台內建的Linux 它的Linux現在還有在做維護更新嗎? 謝謝 - ...

linux無法開機

Elma avatar
By Elma
at 2013-02-06T17:50
※ 引述《akka5678 ()》之銘言: : 開機之後讀取那邊跑得很慢 : 跑完之後沒有出現輸入密碼就卡住了 : 我把硬碟拆掉換其他電腦的硬碟就可以順利地進到桌面 : 這樣是硬碟的問題嗎? : 有辦法讓我強制進入系統把硬碟的東西備份出來嗎 : 拜託高手幫我!!!!!!!! 等很久後會出現一堆文字 W ...

linux無法開機

Carolina Franco avatar
By Carolina Franco
at 2013-02-06T17:01
開機之後讀取那邊跑得很慢 跑完之後沒有出現輸入密碼就卡住了 我把硬碟拆掉換其他電腦的硬碟就可以順利地進到桌面 這樣是硬碟的問題嗎? 有辦法讓我強制進入系統把硬碟的東西備份出來嗎 拜託高手幫我!!!!!!!! - ...

openwebmail收信人過多亂碼問題

Charlotte avatar
By Charlotte
at 2013-02-06T16:38
openwebmail 2.53收信人如果別名有中文且收件人很多的話信件會變成亂碼 mail原始碼情形大概如下 From: and#34;=?UTF-8?Q?=E5=BC=B5=E5=90=9B=E8=B1... To: =?UTF-8?Q?=E5=BC=B5=E5=90=9B=E8=B1=AA... ← ...

為什麼Dolphin總是這麼不穩定?

Ida avatar
By Ida
at 2013-02-06T13:48
這問題從我跳到KDE4以來就一直困擾我到現在:為何Dolphin只要一打開thumbnails就會 一直強制結束?而且詭異的是,從KDE4.6開始到現在4.9每一版我都用過,修了很多bug ,唯獨這個問題一直沒有解決...Mint跟OpenSUSE的Dolphin都這樣,照理Dolphin應該是 使用者最常用 ...