[問題]請教如何將Linux Driver 寫成2個*.c file

看板LinuxDev作者 (GreenLinux)時間9年前 (2015/05/11 15:49), 編輯推噓3(3020)
留言23則, 6人參與, 最新討論串1/1
請教各位: 因為需要在 driver.c 內多寫一些function 而造成 c file 看起來很亂. 我想將 driver.c 內部分 function 移到另一個 *.c file (Ex: drv_func.c) 在不修改 Makefile 及 Kconfig 的前提下可以做到嗎.?? THANKS -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.65.100 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1431330552.A.98F.html

05/11 16:04, , 1F
不修改 Makefile, 那你是要從一個 .c #include 另一個嗎?
05/11 16:04, 1F

05/11 16:21, , 2F
wens大,可以#include *.c嗎.? 不是只能#include *.h?
05/11 16:21, 2F

05/11 17:00, , 3F
可以include c, kernel source tree 裡面有人這樣搞,
05/11 17:00, 3F

05/11 20:41, , 4F
a大謝謝.
05/11 20:41, 4F

05/12 01:23, , 5F
單純好奇 為何不改Makefile呢?有何好處嗎?
05/12 01:23, 5F

05/12 21:05, , 6F
只是希望只改driver code, 不要動到其他設定而已
05/12 21:05, 6F

05/12 21:08, , 7F
抱歉那請問大家為何比較建議改Makefile?
05/12 21:08, 7F

05/12 22:46, , 8F
Makefile改成 obj-$(xx) +=driver.o func.o 這樣?
05/12 22:46, 8F

05/13 09:46, , 9F
目前的kernel Makeifle 邏輯確實要照上面說法才行
05/13 09:46, 9F

05/13 09:48, , 10F
目前的kernel Makefile 邏輯確實要照上面的方法才行
05/13 09:48, 10F

05/13 20:26, , 11F
改makefile比較正統而且直覺,include C的做法算是特例
05/13 20:26, 11F

05/13 20:28, , 12F
目的是為了解決一些Kbuild系統linking上的問題
05/13 20:28, 12F

05/14 01:33, , 13F
其實 include .c 也未必不好. 拉出去的 .c 若是一堆 static
05/14 01:33, 13F

05/14 01:33, , 14F
variables 和 static functions, 又要在 driver.c 中叫用...
05/14 01:33, 14F

05/14 01:35, , 15F
弄到 Makefile 那邊去處理, 也許反而麻煩又可能出錯.
05/14 01:35, 15F

05/14 01:41, , 16F
只不過, 若整理清楚, 依舊全放在 driver.c 有何不可?
05/14 01:41, 16F

05/14 09:52, , 17F
yvb大. 了解.. 謝謝..
05/14 09:52, 17F

05/14 09:53, , 18F
我將一些全域變數,func宣告在*.h而讓driver及func呼叫
05/14 09:53, 18F

05/14 09:54, , 19F
測試到現在暫時沒有問題.(我是用#include "*.c"方法
05/14 09:54, 19F

05/14 09:55, , 20F
要分開 driver.c 及 func.c 的用意只是想...
05/14 09:55, 20F

05/14 09:56, , 21F
一些基本driver功能不會改,所以就放在driver.c
05/14 09:56, 21F

05/14 09:57, , 22F
而一些作為測試或跟 Android NDK 溝通的部分經常要改
05/14 09:57, 22F

05/14 09:59, , 23F
所以想先分出來..
05/14 09:59, 23F
文章代碼(AID): #1LK5xucF (LinuxDev)
文章代碼(AID): #1LK5xucF (LinuxDev)