编译Linux内核-hello world

编译Linux内核-hello world,linux,kernel,Linux,Kernel,我正在尝试编译Linux内核: 我有一个简单的hello-world程序hello-1.cpp #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { return 0; } void cleanup_module(void) { } 我犯了几个错误 make -C /home/pacman/linux-2.6.34.11/2.6.35.6-45.fc14.i6

我正在尝试编译Linux内核:

我有一个简单的hello-world程序hello-1.cpp

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

int init_module(void)
{
    return 0;
}

void cleanup_module(void)
{
}
我犯了几个错误

make -C /home/pacman/linux-2.6.34.11/2.6.35.6-45.fc14.i686/build M=/home/pacman/p1 modules
make: *** /home/pacman/linux-2.6.34.11/2.6.35.6-45.fc14.i686/build: No such file or directory.  Stop.
make:[全部]错误2


我忘了定义什么了吗?

将hello-1重命名。cpp为hello-1。c(模块必须用c编写)并添加以下行:

module_init(init_module);
module_exit(cleanup_module);

在我的例子中,示例编译正确。在您的情况下,找不到作为要生成的参数传递的生成目录。尝试按照本文中的教程进行操作,看看它是否解决了您的问题,或者作为替代方法,您可以搜索内核版本的build dir并将其作为make参数传递。在/home/pacman/linux-2.6.34.11目录中,我是否希望看到build目录或文件?我有一个文件Kbuild。我正在使用Ubuntu作为发行版。您正在使用FC。因此,我发现他们在这里解释说,您需要与您的内核匹配的内核开发包。存在一些不匹配,Makefile命令行启动
make-C/lib/modules/…
,但命令行显示
make-C/home/pacman/…
。您解决了问题吗?
module_init(init_module);
module_exit(cleanup_module);