作者wayne8145 (wayne)
看板LinuxDev
标题[问题] "undeclared reference to func"
时间Tue Feb 9 23:47:26 2016
小弟Linux kernel新手
一个loadable module code中的function称为A
另一个linux kernel的source code称为B
目前的问题是我需要让B呼叫A
在B中include A 的header档,在link time发生如题的错误讯息(compile time没错!)
----------------
因为B与memory management相关
故无法将B compile成loadable module
因此无法透过module.symvers方式让B reference到A
请问有什麽方式能解决此问题呢?
若无法了解题意请告知,小弟能叙述更详细,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.55.148
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1455032848.A.37C.html
1F:推 soso7885: export_symbol 02/11 20:14
2F:→ ah7675: 在module a还没被载入前你的module要怎麽运作? 02/11 23:39
3F:→ wayne8145: @so大,已经export_symbol了 02/12 20:48
4F:→ wayne8145: @ah大,B有使用sysfs方式来做开关的动作 02/12 20:50
5F:推 ah7675: vmlinux本身在runtime是不能修改的(虽然有例外),所以 02/12 23:40
6F:→ ah7675: linker必须要在linking时先填好address才行 02/12 23:43
7F:→ wayne8145: 我有将一样的问题发问在stackoverflow 02/13 13:48
8F:→ wayne8145: goo.gl/dr92RX 02/13 13:53
9F:→ leolarrel: stackoverflow的解法的确不错,其实那就是C++的虚拟类别 02/13 16:25
10F:→ leolarrel: or Java 的Interface的精神 02/13 16:26