Re: [問題] "undefined reference to func"

作者: leolarrel (真.粽子無雙)   2016-02-17 11:53:42
※ 引述《wayne8145 (wayne)》之銘言:
: 小弟Linux kernel新手
: 一個loadable module code中的function稱為A
: 另一個linux kernel的source code稱為B
: 目前的問題是我需要讓B呼叫A
: 在B中include A 的header檔,在link time發生如題的錯誤訊息(compile time沒錯!)
:
作者: wayne8145 (wayne)   2016-02-17 12:57:00
謝謝leo大詳細的解釋現在compile是過了...但runtime時噴dereference null pointer問題應該是我在Module assign函數指標了,但兩個是不同process,B看不到A的變數,是否要用到shared memory讓B看到跟A相同的變數才行小弟資質駑鈍><
作者: leolarrel (真.粽子無雙)   2016-02-17 13:27:00
不對,在kernel裡面,所有的code包然事後插入的module,都處於同一個process
作者: wayne8145 (wayne)   2016-02-17 14:58:00
leo大這句【然後你的module 啟動的時候把你的函式記憶體位置塞到這個"函式指標"變數裡面】module要怎麼去得到主體code的‘’函式指標變數‘’因為AB是分開編譯的,所以是我哪邊有誤會嗎@@
作者: leolarrel (真.粽子無雙)   2016-02-18 11:18:00
你C語言不同C檔案雖然不同時間編譯依樣可以共享全域變數對吧,例如libc裡面的errno變數就是經典的例子,kernel跟module一定是同樣的行程,所以kernel code裡extern出來的變數或函式,module一定可以存取
作者: cobrasgo (人魚線變成鮪魚線,超帥)   2016-02-19 18:49:00
wayne我想你很多基礎觀念都還沒搞懂
作者: wayne8145 (wayne)   2016-02-23 01:16:00
Linux kernel確實還是新手QQ我最後有解決了,不過方法有點不太一樣,還是感謝leo大

Links booklink

Contact Us: admin [ a t ] ucptt.com