社区
Linux_Kernel
帖子详情
EXPORT_SYMBOL问题
liuzhengao
2008-10-17 10:56:36
现在要编译两个文件A.o与B.o到内核中,其中A.o定义了一个函数func,并且使用EXPORT_SYMBOL标明;B.o是一个驱动文件,需要调用A.o中的func函数。
头文件header.h中用声明了函数func,B.o包含了头文件header.h。
但是在编译内核的时候,报错,说func的定义有问题,是什么原因呢?
...全文
351
13
打赏
收藏
EXPORT_SYMBOL问题
现在要编译两个文件A.o与B.o到内核中,其中A.o定义了一个函数func,并且使用EXPORT_SYMBOL标明;B.o是一个驱动文件,需要调用A.o中的func函数。 头文件header.h中用声明了函数func,B.o包含了头文件header.h。 但是在编译内核的时候,报错,说func的定义有问题,是什么原因呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
unbutun
2008-10-24
打赏
举报
回复
除了输出符号的那个文件,所有其他声明的地方都要用extern
liuzhengao
2008-10-21
打赏
举报
回复
extern加在头文件吗?我试过了
加在驱动文件里,还会有错误
unbutun
2008-10-21
打赏
举报
回复
加extern试试
liuzhengao
2008-10-20
打赏
举报
回复
路径?这个有问题吗?
(1)/linux2.6.25/include/asm/arch-omap2/power_companion.h
(2)/linux2.6.25/arch/arm/match-omap2/power_companion.c
1inux2.6.25前面的就不用写了吧
快乐田伯光
2008-10-20
打赏
举报
回复
相对目录对吗?
liuzhengao
2008-10-20
打赏
举报
回复
错误是:undefined reference to `sdp2430_vaux2_ldo_use'
liuzhengao
2008-10-20
打赏
举报
回复
我是把montavista linux中的TI的OMAP处理器的一个LCD驱动移植到2.6.25的新内核中,LCD的主驱动文件omapfb_main.c需要调用arch/arm/match-omap2/power_companion.c下的函数int sdp2430_vaux2_ldo_use(void),而这个文件power_companion.c在新的2.6.25内核中是不存在的。所以我需要将这个文件移到新的2.6.25内核中来,供驱动文件driver/video/omap/omapfb_main.c来调用!
大体写一下我的设计:
(1)asm/arch-omap2/power_companion.h中声明函数:
int sdp2430_vaux2_ldo_use(void);
(2)arch/arm/match-omap2/power_companion.c文件中定义函数:
int sdp2430_vaux2_ldo_use(void)
{
......;
}
EXPORT_SYMBOL(sdp2430_vaux2_ldo_use);
(3)driver/video/omap/omapfb_main.c调用函数sdp2430_vaux2_ldo_use():
#include <asm/arch-omap2/power_companion.h>
sdp2430_vaux2_ldo_use();
这样在编译内核的时候,会报错误!
genghb
2008-10-18
打赏
举报
回复
应该是B没找到func定义或func调用的参数不太对
once_and_again
2008-10-18
打赏
举报
回复
[Quote=引用 2 楼 liuzhengao 的回复:]
我在公司编译的,现在手头没有源码,好像是函数func的定义implicit......
[/Quote]头文件中没有声明?
joyself
2008-10-17
打赏
举报
回复
是warning还是error?
是warning的话,加extern试试
liuzhengao
2008-10-17
打赏
举报
回复
错误行出现在B.c调用func函数处
liuzhengao
2008-10-17
打赏
举报
回复
我在公司编译的,现在手头没有源码,好像是函数func的定义implicit......
joyself
2008-10-17
打赏
举报
回复
至少说一下什么错误吧
嵌入式系统/ARM技术中的Linux内核中
EXPORT
_
SYMBOL
的用法
EXPORT
_
SYMBOL
标签内定义的函数对全部内核代码公开,不用修改内核代码就可以在内核模块中直接调用。还可以手工修改内核源代码来导出另外的函数,用于重新编译并加载新内核后的测试。 使用时注意事项: 在使用...
获取Linux内核未导出符号的几种方式
只有在内核中使用
EXPORT
_
SYMBOL
或
EXPORT
_
SYMBOL
_GPL导出的符号才能在内核模块中直接使用。然而,内核并没有导出所有的符号。例如,在3.8.0的内核中,do_page_fault没有被导出。 而我的内核模块中需要使用do_page...
linux
export
_
symbol
变量,Linux的
EXPORT
_
SYMBOL
和
EXPORT
_
SYMBOL
_GPL的使用和区别
简要说明使用方法:一个模块mod1中定义一个函数func1;在另外一个模块mod2中定义一个函数func2,func2调用func1。...同理
EXPORT
_
SYMBOL
_GPL使用相同。1、
EXPORT
_
SYMBOL
的作用是什么?
EXPORT
_SYMB...
linux
symbol
文件,LINUX
EXPORT
_
SYMBOL
_GPL及
EXPORT
_
SYMBOL
导出函数
EXPORT
_
SYMBOL
(),这个宏也是将函数导出让所有模块都可以使用,而
EXPORT
_
SYMBOL
_GPL()这个宏主要是给有GPL认证的模块使用。2)、
EXPORT
_
SYMBOL
标签内定义的函数对全部内核代码公开,不用修改内核代码就可以在您的内核...
linux模块导出符号
EXPORT
_
SYMBOL
_GPL
EXPORT
_
SYMBOL
1 )、
EXPORT
_
SYMBOL
(),这个宏也是将函数导出让所有模块都可以使用,而
EXPORT
_
SYMBOL
_GPL()这个宏主要是给有GPL认证的模块使用。 2)、
EXPORT
_
SYMBOL
标签内定义的函数对全部内核代码公开,不用修改内核代码就可以在...
Linux_Kernel
4,437
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章