Linux内核git tree-version.h未刷新

Linux内核git tree-version.h未刷新,git,linux-kernel,Git,Linux Kernel,我正在编译一个内核模块,并实现了include/linux/version.h并没有刷新,尽管我从git签出了新内核并运行了make modules\u prepare。我还试图删除include/linux/version.h,但当我运行makemodules\u prepare时,它不会重新生成 知道如何获得最新版本的.h吗?我将include/generated/uapi/linux/version.h复制到include/linux/version.h,这似乎很有效。但是,我仍然在寻找更

我正在编译一个内核模块,并实现了include/linux/version.h并没有刷新,尽管我从git签出了新内核并运行了make modules\u prepare。我还试图删除include/linux/version.h,但当我运行makemodules\u prepare时,它不会重新生成


知道如何获得最新版本的.h吗?

我将include/generated/uapi/linux/version.h复制到include/linux/version.h,这似乎很有效。但是,我仍然在寻找更新此文件的更正式的方法

由于我不记得哪个内核版本,
version.h
头位于

include/generated/uapi/linux/version.h
因此,无论您想对该文件执行什么操作,请使用位于正确位置的文件。一些“旧”程序仍然假定文件位于
include/linux/version.h

您可以向Makefile中添加新的头目录:

-I/path/to/kernel/src/include/generated/uapi/
因此,您的用户应用程序仍然使用
#include


(我假设您使用的是gcc,可能在其他编译器上,选项不是
-I

可能包含在
.gitignore
文件中
grep
这个文件名。我选中了。gitignore,它没有忽略include/linux dir为什么会有否决票?我想要一个解释。处理自动生成的文件通常不是一件好事。下次生成文件时可能会有所不同。它最好是一个符号链接。2.这不是一个可移植的解决方案。要求用户应用程序更改路径是不正确的,但要求用户将其计算机(在本例中是处理/链接文件)配置为应用程序路径是最糟糕的。3.这不是一个答案,而是针对有缺陷的应用程序(如vmware player、catalyst driver、realtek audio等)的黑客攻击。如果您可以对应用程序进行修补,请同时查找路径,以便它可以在旧内核和新内核上运行。在内核文件夹中运行make时,它会运行CHK for include/generated/uapi/linux/version.h。老实说,我认为makefile只需要自动执行一个符号链接,就可以按照您的建议包含/linux/version.h。仍然不确定为什么该文件既没有被跟踪也没有自动刷新。要求用户应用程序更改包含路径是不正确的,因为我检查了deb包中的header文件夹,include/generated文件夹不在那里。还有
include/linux/version.h
。该文件的新位置在答案中。如果不想更新应用程序,可以创建符号链接(而不是建议的副本);但这不是一个解决方案。关于正确性。有了“正确”的想法,我们仍然坚持使用60年代的API:)该文件是几年前移动的。您是否建议用户编写“包含”而不是“包含”?