当前位置: 技术问答>linux和unix
请教各位高手,为什么编译不了??
来源: 互联网 发布时间:2015-01-22
本文导语: 我编了一个模块(最简单的),但编译总是出错!! 提示为: gcc -D__KERNEL__ -DMODULE -g -O2 hello.c -o hello.o 结果: /usr/lib/gcc-lib/i386-redhat/2.96/../../../crt1.0:In function '_start'; /usr/lib/gcc-lib/i386-redhat/2.96/../../../crt1.0(.te...
我编了一个模块(最简单的),但编译总是出错!!
提示为:
gcc -D__KERNEL__ -DMODULE -g -O2 hello.c -o hello.o
结果:
/usr/lib/gcc-lib/i386-redhat/2.96/../../../crt1.0:In function '_start';
/usr/lib/gcc-lib/i386-redhat/2.96/../../../crt1.0(.text+0x18):undefined reference to 'main';
并且,如果在模块中加入printk函数,它总说找不到这函数,不知缺了什么!
提示为:
gcc -D__KERNEL__ -DMODULE -g -O2 hello.c -o hello.o
结果:
/usr/lib/gcc-lib/i386-redhat/2.96/../../../crt1.0:In function '_start';
/usr/lib/gcc-lib/i386-redhat/2.96/../../../crt1.0(.text+0x18):undefined reference to 'main';
并且,如果在模块中加入printk函数,它总说找不到这函数,不知缺了什么!
|
我给你个“标准”的模块示例:hello.c
#define MODULE
#include
int init_module(void)
{
printk("Hello, worldn");
return 0;
}
void cleanup_module(void)
{
printk("Goodbye cruel worldn");
}
录入成hello.c后,用以下命令编译、加载、卸载模块。(记住,必须以root登录)
root# gcc -c hello.c
root# insmod ./hello.o
root# rmmod hello
root#
#define MODULE
#include
int init_module(void)
{
printk("Hello, worldn");
return 0;
}
void cleanup_module(void)
{
printk("Goodbye cruel worldn");
}
录入成hello.c后,用以下命令编译、加载、卸载模块。(记住,必须以root登录)
root# gcc -c hello.c
root# insmod ./hello.o
root# rmmod hello
root#