当前位置: 技术问答>linux和unix
一个小程序,编译不通过,大家帮忙看看,简单得很哦
来源: 互联网 发布时间:2015-02-18
本文导语: #define __KERNEL__ #include #include int main() { unsigned long ini,end; rdtscl(ini); rdtscl(end); printk("time lapse:%lin",end-ini); } 用来算一条指令的执行时间的,rdtscl是一个用来取计数器寄存器里面值的一个宏,在里定义的。但是编译...
#define __KERNEL__
#include
#include
int main()
{
unsigned long ini,end;
rdtscl(ini);
rdtscl(end);
printk("time lapse:%lin",end-ini);
}
用来算一条指令的执行时间的,rdtscl是一个用来取计数器寄存器里面值的一个宏,在里定义的。但是编译通不过,不知道怎么回事
#include
#include
int main()
{
unsigned long ini,end;
rdtscl(ini);
rdtscl(end);
printk("time lapse:%lin",end-ini);
}
用来算一条指令的执行时间的,rdtscl是一个用来取计数器寄存器里面值的一个宏,在里定义的。但是编译通不过,不知道怎么回事
|
printk???? 用在内核模块的打印 用户程序用printf
|
#define __NO_VERSION__
#define MODULE
#include
#include
#include
#ifdef MODULE_LICENSE
#endif
int init_module(void)
{
unsigned long ini,end;
rdtscl(ini);
rdtscl(end);
printk("time lapse:%lin",end-ini);
return 0;
}
void cleanup_module(void)
{
;
}
编译:gcc -D__KERNEL__ -DLINUX -DMODULE -O2 -Wall -I /usr/src/linux/include -c a.c
运行:insmod a.o
查看:tail -f /var/log/message
结束:rmmod a
#define MODULE
#include
#include
#include
#ifdef MODULE_LICENSE
#endif
int init_module(void)
{
unsigned long ini,end;
rdtscl(ini);
rdtscl(end);
printk("time lapse:%lin",end-ini);
return 0;
}
void cleanup_module(void)
{
;
}
编译:gcc -D__KERNEL__ -DLINUX -DMODULE -O2 -Wall -I /usr/src/linux/include -c a.c
运行:insmod a.o
查看:tail -f /var/log/message
结束:rmmod a
|
编译时的选项搞定了?比如:
gcc -D__KERNEL__ ..........................
gcc -D__KERNEL__ ..........................
|
呵呵,如果你是用printf就一定通过了,你现在的错误是没有找到printk,你包含的头文件里没有这个东东!不过我也记得是哪个文件了!