C语言 我如何编译一个文件包括Linux头

nvbavucw  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(70)

我试着编译这段代码:

#include <linux/module.h>
#include <linux/printk.h>

int init_module(void) {
    printk(KERN_INFO "Hello World");
    return (0);
}

使用以下Makefile:

obj-m += hello-1.c

all:
    make -C /lib/modules/$(shell uname -r)/build=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

然后它显示了这个错误消息:

make -C /lib/modules/5.15.90.1-microsoft-standard-WSL2/build=/home/vers modules
make[1]: *** /lib/modules/5.15.90.1-microsoft-standard-WSL2/build=/home/vers: No such file or directory.  Stop.
make: *** [Makefile:4: all] Error 2

我正在尝试将Linux内核编译到我的Debian WSL 2。我试过执行sudo apt-get install linux-headers-generic,但还是失败了。
编辑:我安装Ubuntu 20.04按照这个https://unix.stackexchange.com/questions/594470/wsl-2-does-not-have-lib-modules和它的给予我新的错误

make -C /home/vers/gcc/WSL2-Linux-Kernel M=/home/vers/gcc modules
make[1]: *** /home/vers/gcc/WSL2-Linux-Kernel: No such file or directory.  Stop.
make: *** [Makefile:4: all] Error 2
3htmauhk

3htmauhk1#

您复制了错误的信息。

make -C /lib/modules/$(shell uname -r)/build=$(PWD) modules

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

就像你对clean规则所做的那样。

相关问题