当前位置: 技术问答>linux和unix
请教个,关于C编译器参数CFLAGS的问题(真诚请教,分不够了全部送出)
来源: 互联网 发布时间:2016-10-29
本文导语: 本帖最后由 HEHE8737 于 2010-12-24 22:50:48 编辑 下面这段段摘自雷凌RT73的驱动里的makefile: ###################################################################### # Module Name: Makefile # Abstract: Makefile for rt73 linux driver on kernel series 2.6 ...
######################################################################
# Module Name: Makefile
# Abstract: Makefile for rt73 linux driver on kernel series 2.6
######################################################################
#PLATFORM=PC
PLATFORM=CMPC
#Enable for wpa_supplicant's spcific driver "driver_ralink.c", default enabled.
HAS_RALINK_WPA_SUPPLICANT_SUPPORT=y
#Enable for wpa_supplicant's generic driver "driver_wext.c", used for NetworkManager
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
#Support Block Net-If during TxSw queue full.
HAS_BLOCK_NET_IF=y
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
ifeq ($(HAS_RALINK_WPA_SUPPLICANT_SUPPORT),y)
WFLAGS += -DRALINK_WPA_SUPPLICANT_SUPPORT
endif
ifeq ($(HAS_NATIVE_WPA_SUPPLICANT_SUPPORT),y)
WFLAGS += -DNATIVE_WPA_SUPPLICANT_SUPPORT
endif
ifeq ($(HAS_BLOCK_NET_IF),y)
WFLAGS += -DBLOCK_NET_IF
endif
## Comment/uncomment the following line to enable/disable debugging
#EXTRA_CFLAGS += -DDBG
EXTRA_CFLAGS += $(WFLAGS)
ifeq ($(PLATFORM),PC)
LINUX_SRC =/lib/modules/$(shell uname -r)/build
endif
ifeq ($(PLATFORM),CMPC)
LINUX_SRC = /usr/src/linux-2.6.28.7
endif
EXTRA_CFLAGS += -I$(LINUX_SRC)/include
我始终就不明白WFLAGS += -DRALINK_WPA_SUPPLICANT_SUPPORT,WFLAGS += -DNATIVE_WPA_SUPPLICANT_SUPPORT等几句,-DRALINK_WPA_SUPPLICANT_SUPPORT,-DNATIVE_WPA_SUPPLICANT_SUPPORT是在内核配置里选择的吗?C编译器参数加上这些分别有什么用处呢?还有最后一句EXTRA_CFLAGS += -I$(LINUX_SRC)/include,C编译器参数加上这些又是有什么用处呢?请大家不吝赐教阿!!!!!
|
-DNATIVE_WPA_SUPPLICANT_SUPPORT是指定义一个宏NATIVE_WPA_SUPPLICANT_SUPPORT,跟在代码里用define效果一样,-I$(LINUX_SRC)/include表示包括一个目录的头文件
我猜这是wifi的代码吧
我猜这是wifi的代码吧
|
2楼:的确像1楼所说的那样。
像NATIVE_WPA_SUPPLICANT_SUPPORT这些宏是在代码中定义的,但具体的文件、位置、作用,你要搜索代码才知道。
EXTRA_CFLAGS += -I$(LINUX_SRC)/include,
--->你在Makefile后面再找找有没有用到EXTRA_CFLAGS的地方,一般它是传递给gcc(或者交叉版本)的。形式如:
$(CC) $(EXTRA_CFLAGS) ......
PS:驱动Makefile中好像是$(MAKE)的。
像NATIVE_WPA_SUPPLICANT_SUPPORT这些宏是在代码中定义的,但具体的文件、位置、作用,你要搜索代码才知道。
EXTRA_CFLAGS += -I$(LINUX_SRC)/include,
--->你在Makefile后面再找找有没有用到EXTRA_CFLAGS的地方,一般它是传递给gcc(或者交叉版本)的。形式如:
$(CC) $(EXTRA_CFLAGS) ......
PS:驱动Makefile中好像是$(MAKE)的。