標頭檔案
在vscode中,進行tasklet和work中斷實驗的時候,對於包含的標頭檔案如下兩個一直爆紅:
#include <linux/irq.h>
#include <linux/of_irq.h>
一路追查下來,發現是缺少標頭檔案:
#include <linux/irq.h>
-> #include <asm/irq.h>
-> #include <mach/irqs.h> (該標頭檔案無法找到)
嘗試瞭如下一些辦法:第二個辦法有效
- 在
.vscode/c_cpp_properties.json
中新增標頭檔案路徑。(無用,希望有大手子解答)
追查下來發現,在核心檔案中,本人用的是i.MX6ULL開發板(路徑是./linux/arch/arm/mach-imx
)中,嘗試在json檔案中包含該路徑,無果,爆紅無法消除。 - 直接註釋掉(有效)
#ifndef CONFIG_SPARSE_IRQ //#include <mach/irqs.h> #else #define NR_IRQS NR_IRQS_LEGACY #endif
猜測:
可能是核心版本問題,看檔名發現linux/arch/arm/
這個路徑下都是一些晶片的名字。mach
開頭的檔名,有可能是匹配之意。推測是晶片中斷的一些匹配標頭檔案,但是使用了裝置樹,所以即使是直接註釋掉也不影響編譯透過。