看板 LinuxDev 關於我們 聯絡資訊
作修改嵌入式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
alongalone:寫在 *.h 會因為多重引用,導致變數重複定義 01/23 16:47
alongalone:寫extern才表示實體只有一份; 個人理解是這樣 01/23 16:47
※ 編輯: lowvoice 來自: 140.113.88.6 (01/23 23:18)
askacis:你寫在h檔裡面,本來就是要加extern,不然多個C黨都引用該h 01/24 12:13
askacis:檔就會重複定義;第二個問題可以在Makefile或是kernel的 01/24 12:14
askacis:.config裡面定義,CONFIG_XXXXX之類的define就是了.... 01/24 12:16
adrianshum:這些是基本 C/C++ 問題多於 kernel 相關吧... 01/26 16:29