作者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/m.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