看板 LinuxDev 關於我們 聯絡資訊
小弟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://www.ptt.cc/bbs/LinuxDev/M.1455032848.A.37C.html
soso7885: export_symbol 02/11 20:14
ah7675: 在module a還沒被載入前你的module要怎麼運作? 02/11 23:39
wayne8145: @so大,已經export_symbol了 02/12 20:48
wayne8145: @ah大,B有使用sysfs方式來做開關的動作 02/12 20:50
ah7675: vmlinux本身在runtime是不能修改的(雖然有例外),所以 02/12 23:40
ah7675: linker必須要在linking時先填好address才行 02/12 23:43
wayne8145: 我有將一樣的問題發問在stackoverflow 02/13 13:48
wayne8145: goo.gl/dr92RX 02/13 13:53
leolarrel: stackoverflow的解法的確不錯,其實那就是C++的虛擬類別 02/13 16:25
leolarrel: or Java 的Interface的精神 02/13 16:26