当前位置: 技术问答>linux和unix
请教一个 Linux 的宏定义问题
来源: 互联网 发布时间:2017-03-07
本文导语: 大家好,在 linux 代码中,有很多类似于“#if __LINUX_ARM_ARCH__ >= 6”这样的定义,请问 __LINUX_ARM_ARCH__ 是在哪里定义的?怎么找也没找到,网上也看了,找了很多次都没找到相关的说明,哪位知道是怎么回事吗? ...
大家好,在 linux 代码中,有很多类似于“#if __LINUX_ARM_ARCH__ >= 6”这样的定义,请问 __LINUX_ARM_ARCH__ 是在哪里定义的?怎么找也没找到,网上也看了,找了很多次都没找到相关的说明,哪位知道是怎么回事吗?
|
这个是在arch下的Makefile中定的。
比如以下是在vim中搜索源码得到的输出,直接贴出来吧:
s3c-linux/arch/arm/Makefile|60| arch-$(CONFIG_CPU_32v7)| | :=-D__LINUX_ARM_ARCH__=7 $(call cc-option ,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
-D__LINUX_ARM_ARCH__=7 这个是以宏定义的形式传到源码中了。
比如以下是在vim中搜索源码得到的输出,直接贴出来吧:
s3c-linux/arch/arm/Makefile|60| arch-$(CONFIG_CPU_32v7)| | :=-D__LINUX_ARM_ARCH__=7 $(call cc-option ,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
-D__LINUX_ARM_ARCH__=7 这个是以宏定义的形式传到源码中了。
|
一般可能是在config或者makefile里面定义的吧,编译源码的时候做config可能会生成.h文件,也有可能在里面定义。__LINUX_ARM_ARCH__ 看起来像是根据config来定义的宏。你可以试试把config配置ARM的ARCH,可能会生成这个宏。
仅供参考,呵呵。
仅供参考,呵呵。
|
一般来说,在 make config 会自动检测然后产生的配置文件中定义的
|
-D 就是定义一个宏啊,楼主要看源码makefile什么的要先了解啊。
|
应该是在make menuconfig配置内核时定义了,
|
Linux kernel没有配置好,运行make menuconfig进行配置对应的硬件平台。
|
嗯,gcc可以编译时-D指定宏。