当前位置:  技术问答>linux和unix

【求助】内核中使用EXPORT_SYMBOL,编译时调用模块提示undefined,请高手帮忙

    来源: 互联网  发布时间:2017-01-29

    本文导语:  在kernel添加一个模块abc,这个模块直接编译到内核当中去,在xyz.c中调用此模块EXPORT的函数,编译时提示如下错误,编译停止: abc.c和xyz.c在同一个目录下,其中abc先编译已经生成.o文件,xyz.c也生成.o文件,但在xyz.c编...

在kernel添加一个模块abc,这个模块直接编译到内核当中去,在xyz.c中调用此模块EXPORT的函数,编译时提示如下错误,编译停止:
abc.c和xyz.c在同一个目录下,其中abc先编译已经生成.o文件,xyz.c也生成.o文件,但在xyz.c编译成ko时出错

WARNING: "func_abc" [drivers/usb/test/xyz.ko] undefined!
WARNING: "func_xyz" [drivers/usb/test/xyz.ko] undefined!
WARNING: "set_abc" [drivers/usb/test/xyz.ko] undefined!
WARNING: "set_xyz" [drivers/usb/test/xyz.ko] undefined!
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/home/xyz/kernel/2.6.21.5'
make: *** [kernelbuild] Error 2

看了很多材料,说这时候undefined不影响模块加载,但现在编译都不能通过。
请问高手,怎样才能忽略告警,让编译进行下去?
谢谢

另外:
这两个模块如果同时编译到内核或者同时编译成ko,都是可以正常编译完成,且按顺序insmod是没有问题的。
就是当abc编译进内核,让xyz模块编译成ko的时候,编译kernel都不能完成。
在编译出错后查看Module.sysvers文件里面找不到abc模块对应EXPORT_SYMBOL的函数,不知道是什么原因:(

|
两个有依赖关系的模块,发生这种问题可以用下面方法解决。
方法一: 把abc模块都放在Linux源码目录啊下,与源码一起编译,不管是直接编译到内核,还是被编译成模块.
方法二: 与内核源码分开放置,但需要手动(使用命令),更新依赖表. 其实在方法一中,依赖表被脚本自动更新了。


|
是不是abc模块的所有函数都没用在Module.sysvers里,如果是这样,就是你Makefile文件修改的不对。

|
本帖最后由 wenxy1 于 2011-11-30 08:35:33 编辑
错误信息不完整,贴上完整的编译信息!
用EXPORT_SYMBOL_GPL()或者EXPORT_SYMBOL()宏导出对应的函数,另外函数不要用static 关键字。

|
试试在xyz里extern 一下要调用的函数
内核里找个地方也extern一下

abc里static不能加的

|
出现undefined肯定是Module.sysvers没有对应函数。重点从这里开始查吧,你也可以把单独编译生成的Module.sysvers添加到系统的Module.sysvers里

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 【求助】基于2.6.29内核编译的驱动程序能否应用于2.6.32内核的系统?
  • 【求助】多进程中 内核信号量无效?
  • 求助:makefile,驱动与linux内核的关系?
  • 求助: 进程调度内核分析
  • 求助,关于编译驱动进内核的一个问题,实在找不到资料了!
  • rh8编译内核出错!求助!
  • [求助]如何设置uclinux内核中的内存
  • 求助如何顺利的阅读linux内核源代码
  • 内核源码求助?
  • 求助:内核编译出错,系统不能启动!!
  • 编译内核时出现的一个问题,求助!
  • 求助:如何移植DM9000网卡驱动到linux2.6内核?
  • 想在linux下面读ntfs分区,rpm内核时出现问题,求助!
  • iptables已打入string match补丁,编译内核无法找到该项,求助高手!
  • 内核与用户进程通信得问题,求助!
  • (求助)准备向linux内核方向发展应该有哪些基础???
  • 求助: linux内核编译的问题
  • 求助!编译内核出错
  • 求助:编译新内核,怎么会影响到旧内核的声卡驱动?
  • 紧急求助内核编译问题,急求!
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • linux和unix iis7站长之家
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3