看板 LinuxDev 關於我們 聯絡資訊
請教各位: 因為需要在 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
wens: 不修改 Makefile, 那你是要從一個 .c #include 另一個嗎? 05/11 16:04
greenlinux: wens大,可以#include *.c嗎.? 不是只能#include *.h? 05/11 16:21
askacis: 可以include c, kernel source tree 裡面有人這樣搞, 05/11 17:00
greenlinux: a大謝謝. 05/11 20:41
musicguitar: 單純好奇 為何不改Makefile呢?有何好處嗎? 05/12 01:23
greenlinux: 只是希望只改driver code, 不要動到其他設定而已 05/12 21:05
greenlinux: 抱歉那請問大家為何比較建議改Makefile? 05/12 21:08
greenlinux: Makefile改成 obj-$(xx) +=driver.o func.o 這樣? 05/12 22:46
leolarrel: 目前的kernel Makeifle 邏輯確實要照上面說法才行 05/13 09:46
leolarrel: 目前的kernel Makefile 邏輯確實要照上面的方法才行 05/13 09:48
askacis: 改makefile比較正統而且直覺,include C的做法算是特例 05/13 20:26
askacis: 目的是為了解決一些Kbuild系統linking上的問題 05/13 20:28
yvb: 其實 include .c 也未必不好. 拉出去的 .c 若是一堆 static 05/14 01:33
yvb: variables 和 static functions, 又要在 driver.c 中叫用... 05/14 01:33
yvb: 弄到 Makefile 那邊去處理, 也許反而麻煩又可能出錯. 05/14 01:35
yvb: 只不過, 若整理清楚, 依舊全放在 driver.c 有何不可? 05/14 01:41
greenlinux: yvb大. 了解.. 謝謝.. 05/14 09:52
greenlinux: 我將一些全域變數,func宣告在*.h而讓driver及func呼叫 05/14 09:53
greenlinux: 測試到現在暫時沒有問題.(我是用#include "*.c"方法 05/14 09:54
greenlinux: 要分開 driver.c 及 func.c 的用意只是想... 05/14 09:55
greenlinux: 一些基本driver功能不會改,所以就放在driver.c 05/14 09:56
greenlinux: 而一些作為測試或跟 Android NDK 溝通的部分經常要改 05/14 09:57
greenlinux: 所以想先分出來.. 05/14 09:59