作者greenlinux (GreenLinux)
看板LinuxDev
标题[问题]请教如何将Linux Driver 写成2个*.c file
时间Mon May 11 15:49:10 2015
请教各位:
因为需要在 driver.c 内多写一些function 而造成 c file 看起来很乱.
我想将 driver.c 内部分 function 移到另一个 *.c file (Ex: drv_func.c)
在不修改 Makefile 及 Kconfig 的前提下可以做到吗.??
THANKS
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.65.100
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1431330552.A.98F.html
1F:→ wens: 不修改 Makefile, 那你是要从一个 .c #include 另一个吗? 05/11 16:04
2F:→ greenlinux: wens大,可以#include *.c吗.? 不是只能#include *.h? 05/11 16:21
3F:推 askacis: 可以include c, kernel source tree 里面有人这样搞, 05/11 17:00
4F:→ greenlinux: a大谢谢. 05/11 20:41
5F:→ musicguitar: 单纯好奇 为何不改Makefile呢?有何好处吗? 05/12 01:23
6F:→ greenlinux: 只是希望只改driver code, 不要动到其他设定而已 05/12 21:05
7F:→ greenlinux: 抱歉那请问大家为何比较建议改Makefile? 05/12 21:08
8F:→ greenlinux: Makefile改成 obj-$(xx) +=driver.o func.o 这样? 05/12 22:46
9F:→ leolarrel: 目前的kernel Makeifle 逻辑确实要照上面说法才行 05/13 09:46
10F:→ leolarrel: 目前的kernel Makefile 逻辑确实要照上面的方法才行 05/13 09:48
11F:推 askacis: 改makefile比较正统而且直觉,include C的做法算是特例 05/13 20:26
12F:→ askacis: 目的是为了解决一些Kbuild系统linking上的问题 05/13 20:28
13F:推 yvb: 其实 include .c 也未必不好. 拉出去的 .c 若是一堆 static 05/14 01:33
14F:→ yvb: variables 和 static functions, 又要在 driver.c 中叫用... 05/14 01:33
15F:→ yvb: 弄到 Makefile 那边去处理, 也许反而麻烦又可能出错. 05/14 01:35
16F:→ yvb: 只不过, 若整理清楚, 依旧全放在 driver.c 有何不可? 05/14 01:41
17F:→ greenlinux: yvb大. 了解.. 谢谢.. 05/14 09:52
18F:→ greenlinux: 我将一些全域变数,func宣告在*.h而让driver及func呼叫 05/14 09:53
19F:→ greenlinux: 测试到现在暂时没有问题.(我是用#include "*.c"方法 05/14 09:54
20F:→ greenlinux: 要分开 driver.c 及 func.c 的用意只是想... 05/14 09:55
21F:→ greenlinux: 一些基本driver功能不会改,所以就放在driver.c 05/14 09:56
22F:→ greenlinux: 而一些作为测试或跟 Android NDK 沟通的部分经常要改 05/14 09:57
23F:→ greenlinux: 所以想先分出来.. 05/14 09:59