C 如何在内核日志中打印内核代码的最新提交id?

C 如何在内核日志中打印内核代码的最新提交id?,c,linux,git,linux-kernel,C,Linux,Git,Linux Kernel,出于某种调试目的,我需要在内核日志中打印linux内核源代码的最新提交id。那怎么做呢 我知道最新的提交id可以通过git rev parse HEAD知道,但是如何在linux内核日志中打印它的o/p 是否有任何方法可以在linux内核代码中调用任何命令,如system(“git rev parse HEAD”),并将其o/p存储在字符串或宏中。这应该在编译时完成,在运行时需要打印该字符串或宏的值。要基于abeaumet的答案,我建议如下: gcc main.c -DKERNEL_LAST_C

出于某种调试目的,我需要在内核日志中打印linux内核源代码的最新提交id。那怎么做呢

我知道最新的提交id可以通过
git rev parse HEAD
知道,但是如何在linux内核日志中打印它的o/p


是否有任何方法可以在linux内核代码中调用任何命令,如
system(“git rev parse HEAD”)
,并将其o/p存储在字符串或宏中。这应该在编译时完成,在运行时需要打印该字符串或宏的值。

要基于abeaumet的答案,我建议如下:

gcc main.c -DKERNEL_LAST_COMMIT="\"$(cd /kernel/source/path ; git rev-parse HEAD)\""

我想你可以避免
\“导致子shell输出已经被引用。@ AbAuMeT并不是真的,因为哈希看起来像是代码78D64、CCEFD913B4AF07B9F05F5060E1612ECFA9</代码>,它需要在代码中是一个字符串。哼,是的,我没有考虑这个问题。我删除了我的响应,因为您的响应似乎完全正确:)在CLI上,它工作正常…即使使用“hello\”也可以从内核make文件中工作,但当我尝试使用$(命令)时,它在make中不工作file@JoachimPileborg谢谢$$成功了…我刚在谷歌上搜索了一下,发现即使是$(shell命令)也可以工作