怎么样把内核函数导出来?
怎么样才能把自己需要的内核符号导出来?模块导出的符号有限,把程序编译进内核又很麻烦,我试着用EXPORT_SYMBOL把自己需要的函数加到ksyms.c文件里,编译内核后在/proc/ksyms可以看到导出的符号,就是不能用,哪位大虾知道怎么才能把符号导出来,小弟这里先谢过了 好像只有定义了“--KERNEL--”才能用内核导出的符号吧。用户态的程序好像不能用吧。呵呵,不一定对哦,我也是菜鸟 u are developing a kernel module? most of the time, if a symbol is not exported, there is a reason for why it is not exported. so try to do something else if possible. but most of the time use export_symbol and recompile is enough 好像只有定义了“--KERNEL--”才能用内核导出的符号吧。用户态的程序好像不能用吧。呵呵,不一定对哦,我也是菜鸟怎样定义__kERNEL__,我在linuxforum也有人说要定义__kERNEL__,能不能告诉我怎么样定义,还有在哪儿定义__KERNEL__,谢谢指教 在源文件中:
#define __KERNEL__
或
gcc -c xxx.c -D__KERNEL__
否则EXPORT_SYMBOL的符号不可见 在源文件中:
#define __KERNEL__
或
gcc -c xxx.c -D__KERNEL__
否则EXPORT_SYMBOL的符号不可见
哦是这样啊,不过我的Makefile文件里原来就包涵了-D__KERNEL__ ,还有我也试过在源文件里定义,可是编译时说是重定义,也不见效果。不过还是谢谢Z兄的指教了,呵呵 那可能还有别的原因? :shock:
你是怎么引用那个符号的?
代码贴出来看看吧,大家讨论讨论 老大,你要用模块编写的方法,用户的方法不行,linux device driver
页:
[1]