bierdaci 发表于 2004-4-14 19:03:36

怎么样把内核函数导出来?

怎么样才能把自己需要的内核符号导出来?模块导出的符号有限,把程序编译进内核又很麻烦,我试着用EXPORT_SYMBOL把自己需要的函数加到ksyms.c文件里,编译内核后在/proc/ksyms可以看到导出的符号,就是不能用,哪位大虾知道怎么才能把符号导出来,小弟这里先谢过了

ttjswdy 发表于 2004-4-16 11:11:12

好像只有定义了“--KERNEL--”才能用内核导出的符号吧。用户态的程序好像不能用吧。呵呵,不一定对哦,我也是菜鸟

Dragonfly 发表于 2004-4-16 11:53:18

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

bierdaci 发表于 2004-4-16 13:51:41

好像只有定义了“--KERNEL--”才能用内核导出的符号吧。用户态的程序好像不能用吧。呵呵,不一定对哦,我也是菜鸟
怎样定义__kERNEL__,我在linuxforum也有人说要定义__kERNEL__,能不能告诉我怎么样定义,还有在哪儿定义__KERNEL__,谢谢指教

_z_ 发表于 2004-4-16 14:06:32

在源文件中:
#define __KERNEL__



gcc -c xxx.c -D__KERNEL__

否则EXPORT_SYMBOL的符号不可见

bierdaci 发表于 2004-4-16 18:04:59

在源文件中:
#define __KERNEL__



gcc -c xxx.c -D__KERNEL__

否则EXPORT_SYMBOL的符号不可见

哦是这样啊,不过我的Makefile文件里原来就包涵了-D__KERNEL__ ,还有我也试过在源文件里定义,可是编译时说是重定义,也不见效果。不过还是谢谢Z兄的指教了,呵呵

_z_ 发表于 2004-4-16 23:44:14

那可能还有别的原因? :shock:

你是怎么引用那个符号的?
代码贴出来看看吧,大家讨论讨论

flg2932946 发表于 2004-4-18 16:34:42

老大,你要用模块编写的方法,用户的方法不行,linux device driver
页: [1]
查看完整版本: 怎么样把内核函数导出来?