[問題] "undefined reference to func"

看板LinuxDev作者 (wayne)時間8年前 (2016/02/09 23:47), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/2 (看更多)
小弟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

02/11 20:14, , 1F
export_symbol
02/11 20:14, 1F

02/11 23:39, , 2F
在module a還沒被載入前你的module要怎麼運作?
02/11 23:39, 2F

02/12 20:48, , 3F
@so大,已經export_symbol了
02/12 20:48, 3F

02/12 20:50, , 4F
@ah大,B有使用sysfs方式來做開關的動作
02/12 20:50, 4F

02/12 23:40, , 5F
vmlinux本身在runtime是不能修改的(雖然有例外),所以
02/12 23:40, 5F

02/12 23:43, , 6F
linker必須要在linking時先填好address才行
02/12 23:43, 6F

02/13 13:48, , 7F
我有將一樣的問題發問在stackoverflow
02/13 13:48, 7F

02/13 13:53, , 8F
goo.gl/dr92RX
02/13 13:53, 8F

02/13 16:25, , 9F
stackoverflow的解法的確不錯,其實那就是C++的虛擬類別
02/13 16:25, 9F

02/13 16:26, , 10F
or Java 的Interface的精神
02/13 16:26, 10F
文章代碼(AID): #1MkWeGDy (LinuxDev)
文章代碼(AID): #1MkWeGDy (LinuxDev)