Kernel module compilation errors
From: Greg KH <hidden>
Date: 2016-08-11 19:40:46
On Thu, Aug 11, 2016 at 07:25:45PM +0000, Matt M wrote:
I am just getting started with kernel module development, and I can't get
anything to compile.
I get the following errors:
In file included from main.c:1:0:
/usr/src/linux/include/linux/init.h:142:13: error: expected ?=?, ?,?, ?;?,
?asm? or ?__attribute__? before ?load_default_modules?
?void __init load_default_modules(void);
? ? ? ? ? ? ?^~~~~~~~~~~~~~~~~~~~
/usr/src/linux/include/linux/init.h:143:12: error: expected ?=?, ?,?, ?;?,
?asm? or ?__attribute__? before ?init_rootfs?
?int __init init_rootfs(void);
? ? ? ? ? ? ^~~~~~~~~~~
/usr/src/linux/include/linux/init.h:285:13: error: expected ?=?, ?,?, ?;?,
?asm? or ?__attribute__? before ?parse_early_param?
?void __init parse_early_param(void);
? ? ? ? ? ? ?^~~~~~~~~~~~~~~~~
/usr/src/linux/include/linux/init.h:286:13: error: expected ?=?, ?,?, ?;?,
?asm? or ?__attribute__? before ?parse_early_options?
?void __init parse_early_options(char *cmdline);
The errors go on and on, but the majority look like that.
My code:
#include <linux/init.h>
#include <linux/module.h>
int main() {
return 0;
}
The compile command:
gcc -I /usr/src/linux/include/ main.cThat's not how you compile a Linux kernel module, sorry. Please read the very good documentation for how to set up a Makefile for building a kernel module. It's in the kernel's Documentation/ directory. best of luck, greg k-h