【PE/makefile】編譯標記EXTRA_CFLAGS介紹和使用方法


###Date: 2018.3.24

===========================================================

1、介紹

    EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS, EXTRA_ARFLAGS
    所有的EXTRA_變量只能使用在定義該變量后的makefile文件中。EXTRA_變量被makefile文件所有的執行命令語句所使用。
    $(EXTRA_CFLAGS)是使用$(CC)/gcc編譯C文件的編譯參數選項。
    例如: # drivers/sound/emu10k1/Makefile
    EXTRA_CFLAGS += -I$(obj)
    ifdef
    DEBUG EXTRA_CFLAGS += -DEMU10K1_DEBUG
    endif
    定義這個變量是必須的,因為頂層makefile定義了$(CFLAGS)變量並使用該變量編譯整個代碼樹。
    $(EXTRA_AFLAGS)是每個目錄編譯匯編語言源文件的選項。
    例如: #arch/x86_64/kernel/Makefile
    EXTRA_AFLAGS := -traditional
    $(EXTRA_LDFLAGS)和$(EXTRA_ARFLAGS)用於每個目錄de$(LD)和$(AR)選項。

2、理解以及使用方法

CFLAGS += $(EXTRA_CFLAGS)

理解:在外部傳入CFLAGS會將makefile中的變量CFLAGS中的值覆蓋掉,而采用EXTRA_FLAGS變量的目的應該就是在外部傳入CFLAGS變量時不會將makefile中該變量的值被覆蓋掉,而是將相應的值追加上去。

使用方法: make  PLATFORM=arm  CROSS=aarch64-hisiv610-linux-gnu-  EXTRA_FLAGS+=-DARM

使用情況:在arm平台中存在很多交叉編譯工具鏈,可以通過外部輸入交叉編譯工具(CROSS?=arm-hisiv400-linux-)和CFLAGS或者其他參數選項的值,從而實現makefile編譯腳本的靈活編譯。


3、參考

https://blog.csdn.net/hustbin/article/details/16951689

http://blog.sina.com.cn/s/blog_87c063060101i2ej.html




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM