20130727工作中遇到的問題
問題背景:需要把產品定義標頭檔案裡面的產品定義取出來,然後按照產品定義分模組編譯,shell裡面做的工作主要是從product_type.h提出產品的定義,然後把產品定義export到環境變數,供makefile使用,makefile根據產品定義傳各個模組的編譯巨集-d***_mod_inc到gcc
cur_dir=`pwd`
product_typedef_file=$cur_dir/foo/include/product_type.h
product_type_def=switch
get_product_type()
#bash 的寫法,獲取字串
#tmp=$line[0,7] #zsh 的寫法,獲取字串
#$ #bash, zsh 都支援 求字串長度
tmp=$line[0,7]
if [[ $tmp = $define ]]; then
let "count = $count + 1" # 統計含"#define"的行數
if [ $count -eq 3 ]; then
product_type_def=$line[8,$]
break
fifi
done < $product_typedef_file
}get_product_type
echo product_type_def: $product_type_def
# 新增到環境變數,以備makefile取用
export product_type_def
問題在makefile中驚現了!!!
在makefile中用
ifeq (product_foo, $(product_type_def))
cflags += -dmod_inc_snmp
endif
來對cflags賦值,傳入編譯巨集。但是cflags始終不能賦值!! 而我把$(product_type_def) echo出來,是和product_foo一致的!!!實在找不到原因
後面採用了另一種方法就解決了,但是沒有搞清楚原因,方法如下:
ifeq ($(findstring product_foo, $(product_type_def)), product_foo)
cflags += -dmod_inc_snmp
endif
有人能告訴我為什麼????!!!
shell,makefile列印變數的不同
shell列印變數不需要用 否則報錯 dir var echo dir 結果 未找到命令 正確寫法 dir var echo dir 結果 var makefile列印變數需要,若變數只有乙個字母,加不加 或 無所謂,若對於多於乙個字母,必須加 或 否則列印的結果會有問題。l joan all ec...
關於程式關於世界
首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...
關於血液關於軟體
1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...