【发布时间】:2017-11-24 18:25:02
【问题描述】:
内核定义了两个宏LINUX_VERSION_CODE和KERNEL_VERSION,可以用来检查内核版本。但是它不允许检查版本字符串是否有EXTRAVERSION 后缀,例如4.11.0-rc8。
我需要在编译时进行此类检查。除了上面提到的宏,我还能看什么?
谢谢。
【问题讨论】:
标签: linux linux-kernel version
内核定义了两个宏LINUX_VERSION_CODE和KERNEL_VERSION,可以用来检查内核版本。但是它不允许检查版本字符串是否有EXTRAVERSION 后缀,例如4.11.0-rc8。
我需要在编译时进行此类检查。除了上面提到的宏,我还能看什么?
谢谢。
【问题讨论】:
标签: linux linux-kernel version
你可以阅读include/config/kernel.release,就像内核的makefile所说:
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
并且在编译过程中Makefile会导出内核的版本信息,也许你可以使用它。
【讨论】: