[問題] 不同的driver可以使用相同的function name嗎?

看板LinuxDev作者 (ZGMF-X19A)時間16年前 (2009/05/27 13:55), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
我有兩個很相似的driver 裡面許多function和variable名稱都相同 各別build進kernel都沒問題 但是放在一起build的話就不行了 在link的時候會出現error message: drivers/driver2/driver2.o: In function `MyFunction': drivers/driver2/driver2.o(.text+0x22dec): multiple definition of `MyFunction' drivers/driver1/driver1.o(.text+0x1e92c): first defined here (是用link進kernel image的方式載入,不是insmod) 請問有沒有改名字以外的解決方法呢? 還是改成insmod就可以解決了呢? (會同時用到兩個driver) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.144.245

05/27 20:12, , 1F
如果該function 只有單一檔案用上,那在 function 前加 static
05/27 20:12, 1F

05/27 20:13, , 2F
Ex: static int MyFunction( int arg ) { ... }
05/27 20:13, 2F

05/28 23:29, , 3F
不只單一檔案...現在正在改用insmod試試看
05/28 23:29, 3F
文章代碼(AID): #1A7DNFCg (LinuxDev)
文章代碼(AID): #1A7DNFCg (LinuxDev)