Makefile學習筆記

${LIB_STATIC}: libs ${objects}
    $(AR) rcs $@ $(objects) $(BUILD_OUT_PATH)*.o 
    -rm ${objects}
    -rm -rf ${BUILD_OUT_PATH}

格式:ar rcs libxxx.a xx1.o xx2.o 鏈接

  • 參數(shù)r:在庫中插入模塊(替換)镊讼。當插入的模塊名已經(jīng)在庫中存在洗搂,則替換同名的模塊烤咧。如果若干模塊中有一個模塊在庫中不存在腹暖,ar顯示一個錯誤消息,并不替換其他同名模塊铡恕。默認的情況下琢感,新的成員增加在庫的結尾處,可以使用其他任選項來改變增加的位置探熔。
  • 參數(shù)c:創(chuàng)建一個庫驹针。不管庫是否存在,都將創(chuàng)建诀艰。
  • 參數(shù)s:創(chuàng)建目標文件索引柬甥,這在創(chuàng)建較大的庫時能加快時間饮六。(補充:如果不需要創(chuàng)建索引,可改成大寫S參數(shù)苛蒲;如果.a文件缺少索引卤橄,可以使用ranlib命令添加)

函數(shù)wildcard: 但在變量的定義和函數(shù)引用時,通配符將失效臂外,使用該函數(shù)讓通配符展開窟扑。鏈接


make -C $(MBEDTLS_PATH) lib -e CC=$(PLATFORM_CC) AR=$(PLATFORM_AR)
cp -RP $(TLS_LIB_DIR)libmbedtls.*   $(BUILD_OUT_PATH)
cp -RP $(TLS_LIB_DIR)libmbedx509.*  $(BUILD_OUT_PATH)
cp -RP $(TLS_LIB_DIR)libmbedcrypto.* $(BUILD_OUT_PATH)
cd $(BUILD_OUT_PATH) && $(AR) x libmbedtls.a
cd $(BUILD_OUT_PATH) && $(AR) x libmbedx509.a
cd $(BUILD_OUT_PATH) && $(AR) x libmbedcrypto.a

1、-e或者--environment-override: 不允許在Makefile中對系統(tǒng)環(huán)境變量進行重新賦值漏健,比如上面代碼中規(guī)定CC和AR禁止被重新賦值嚎货。

2、make -C $(MBEDTLS_PATH) lib -e CC=$(PLATFORM_CC) AR=$(PLATFORM_AR)

  • 這段代碼的意思是在MBEDTLS_PATH路徑下執(zhí)行該路徑的Makefile文件的lib目標蔫浆,執(zhí)行過程中殖属,系統(tǒng)環(huán)境變量CCAR禁止被再次賦值。

3瓦盛、cp -RP $(TLS_LIB_DIR)libmbedtls.* $(BUILD_OUT_PATH)

  • cp -RP: -R/r:遞歸處理忱辅,將指定目錄下的所有文件與子目錄一并處理;-p:保留源文件或目錄的屬性谭溉;該代碼會將TLS_LIB_DIR目錄前綴為libmbedtls的文件拷貝到BUILD_OUT_PATH路徑下并且會保留源文件。鏈接

CFLAGS += -Wall -O2 ${INCLUDE_DIRS}
  • -Wall: 顯示警告信息橡卤,使用這個參數(shù)會在編譯時顯示更多的警告信息扮念。這個參數(shù)很有用,特別是找不到libs/header之類的問題碧库。參考
  • -O:表示最佳優(yōu)化的程度柜与。-O默認值是-O1,你可以指定成-O2或-O3嵌灰,數(shù)字越大表示最佳優(yōu)化程度越高弄匕,但是也會增加編譯的時間沽瞭。
CFLAGS += -DSTD_OUT
  • -DSTD_OUT = #define STD_OUT 1迁匠。參考
CFLAGS += -DIOT_SDK_TRACE
  • 同上,如果工程中有.h或者.c含有下列代碼驹溃,則會打印字符defined

    #ifdef IOT_SDK_TRACE
        printf("defined");
    #endif
    

${objects}:%.o:%.c
    $(CC) $(CFLAGS) -c $^ -o $@
  1. $^ : 指代所有前置條件城丧,之間以空格分隔。比如豌鹤,規(guī)則為 t: p1 p2亡哄,那么 $^ 就指代 p1 p2 。
  2. $@ : $@指代當前目標布疙,就是Make命令當前構建的那個目標, 這里就是${objects}蚊惯。參考
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愿卸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子截型,更是在濱河造成了極大的恐慌趴荸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菠劝,死亡現(xiàn)場離奇詭異赊舶,居然都是意外死亡,警方通過查閱死者的電腦和手機赶诊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門笼平,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舔痪,你說我怎么就攤上這事寓调。” “怎么了锄码?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵夺英,是天一觀的道長。 經(jīng)常有香客問我滋捶,道長痛悯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任重窟,我火速辦了婚禮载萌,結果婚禮上,老公的妹妹穿的比我還像新娘巡扇。我一直安慰自己扭仁,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布厅翔。 她就那樣靜靜地躺著乖坠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刀闷。 梳的紋絲不亂的頭發(fā)上熊泵,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音甸昏,去河邊找鬼戈次。 笑死,一個胖子當著我的面吹牛筒扒,可吹牛的內(nèi)容都是我干的怯邪。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼花墩,長吁一口氣:“原來是場噩夢啊……” “哼悬秉!你這毒婦竟也來了澄步?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤和泌,失蹤者是張志新(化名)和其女友劉穎村缸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體武氓,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡梯皿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了县恕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片东羹。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖忠烛,靈堂內(nèi)的尸體忽然破棺而出属提,到底是詐尸還是另有隱情,我是刑警寧澤美尸,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布冤议,位于F島的核電站,受9級特大地震影響师坎,放射性物質發(fā)生泄漏恕酸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一胯陋、第九天 我趴在偏房一處隱蔽的房頂上張望尸疆。 院中可真熱鬧,春花似錦惶岭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至筐咧,卻和暖如春鸯旁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背量蕊。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工铺罢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人残炮。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓韭赘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親势就。 傳聞我的和親對象是個殘疾皇子泉瞻,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容