QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1579|回复: 7

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

[复制链接]
发表于 2004-4-14 19:03:36 | 显示全部楼层 |阅读模式
怎么样才能把自己需要的内核符号导出来?模块导出的符号有限,把程序编译进内核又很麻烦,我试着用EXPORT_SYMBOL把自己需要的函数加到ksyms.c文件里,编译内核后在/proc/ksyms可以看到导出的符号,就是不能用,哪位大虾知道怎么才能把符号导出来,小弟这里先谢过了
发表于 2004-4-16 11:11:12 | 显示全部楼层
好像只有定义了“--KERNEL--”才能用内核导出的符号吧。用户态的程序好像不能用吧。呵呵,不一定对哦,我也是菜鸟
回复

使用道具 举报

发表于 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
回复

使用道具 举报

 楼主| 发表于 2004-4-16 13:51:41 | 显示全部楼层
[quote:7b3a6911cb="ttjswdy"]好像只有定义了“--KERNEL--”才能用内核导出的符号吧。用户态的程序好像不能用吧。呵呵,不一定对哦,我也是菜鸟[/quote]
怎样定义__kERNEL__,我在linuxforum也有人说要定义__kERNEL__,能不能告诉我怎么样定义,还有在哪儿定义__KERNEL__,谢谢指教
回复

使用道具 举报

发表于 2004-4-16 14:06:32 | 显示全部楼层
在源文件中:
#define __KERNEL__



gcc -c xxx.c -D__KERNEL__

否则EXPORT_SYMBOL的符号不可见
回复

使用道具 举报

 楼主| 发表于 2004-4-16 18:04:59 | 显示全部楼层
[quote:5d68cd5a0e="_z_"]在源文件中:
#define __KERNEL__



gcc -c xxx.c -D__KERNEL__

否则EXPORT_SYMBOL的符号不可见[/quote]

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

使用道具 举报

发表于 2004-4-16 23:44:14 | 显示全部楼层
那可能还有别的原因?

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

使用道具 举报

发表于 2004-4-18 16:34:42 | 显示全部楼层
老大,你要用模块编写的方法,用户的方法不行,linux device driver
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 08:42 , Processed in 0.041453 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表