[問題] linux kernel

看板LinuxDev作者 (i am sam)時間16年前 (2010/01/23 15:50), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
作修改嵌入式Linux OS時出現幾個問題 想請問前輩能指正我的錯誤 我想在linux的include中新增一個變數,例如(int abc;) 但是在make時候會出現重複定義的錯誤 但是如果加上extern 例如(extern int abc;) 就不會出現compile的error 這是何原因? \ 以前在寫code時,不是要先定義一個變數,如果其他檔案也要用這變數 才加extern 在變數前面? 另一個問題是我想在兩個kernel的.c檔中傳遞參數 要怎樣做才有辦法 是EXPORT_SYMBOL嗎?? 還有一個問題 就是常常看到kernel code中有#ifdef XXX (XXX是一個變數名稱) #endif 想請問那個XXX的值,是在哪邊決定的阿? Makefile嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.88.6

01/23 16:47, , 1F
寫在 *.h 會因為多重引用,導致變數重複定義
01/23 16:47, 1F

01/23 16:47, , 2F
寫extern才表示實體只有一份; 個人理解是這樣
01/23 16:47, 2F
※ 編輯: lowvoice 來自: 140.113.88.6 (01/23 23:18)

01/24 12:13, , 3F
你寫在h檔裡面,本來就是要加extern,不然多個C黨都引用該h
01/24 12:13, 3F

01/24 12:14, , 4F
檔就會重複定義;第二個問題可以在Makefile或是kernel的
01/24 12:14, 4F

01/24 12:16, , 5F
.config裡面定義,CONFIG_XXXXX之類的define就是了....
01/24 12:16, 5F

01/26 16:29, , 6F
這些是基本 C/C++ 問題多於 kernel 相關吧...
01/26 16:29, 6F
文章代碼(AID): #1BMgeu3f (LinuxDev)
文章代碼(AID): #1BMgeu3f (LinuxDev)