根据提供的错误信息,可以看到以下问题:

  1. 编译警告:'the compiler differs from the one used to build the kernel':这意味着你正在使用的编译器与用于构建内核的编译器不同。这可能导致潜在的问题。你可以尝试使用与内核构建时相同的编译器版本,以避免潜在的兼容性问题。

  2. 错误:'expected declaration specifiers or '...' before string constant':这个错误发生在第34行,表明在字符串常量 'TestDevice' 前缺少了声明说明符或 '...'。这可能是因为在使用 MODULE_SUPPORTED_DEVICE 宏之前没有包含相应的头文件 <linux/moduleparam.h>。请确保在代码中添加 #include <linux/moduleparam.h> 这一行。

  3. 错误:'Makefile:2026:/home/Linux/ex3-doc-license] 错误 2' 和 'Makefile:9:modules] 错误 2':这些错误表明在编译过程中发生了问题,导致无法生成模块。请确保你有正确的内核源代码和头文件,并且设置正确的编译环境。

综上所述,请在代码中添加 #include <linux/moduleparam.h> 并确保使用正确的内核版本和编译环境。如果问题仍然存在,请提供更多信息,例如完整的错误输出和操作系统版本,以便我可以提供更准确的帮助。

Linux 内核模块编译错误:编译器不匹配和 MODULE_SUPPORTED_DEVICE 错误

原文地址: https://www.cveoy.top/t/topic/beIE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录