多源文件的Linux驱动Makefile编写

以前写的的都是一些如led数码管简单的驱动,今天在写linux lcd驱动的时候,将代码分成了几个模块,每个模块用一个.h和.c对应,最后在组合在一起。结果在编译时总是提示函数未定义,但是我明明包含了头文件。

make -C /home/longjun/linux-2.6.24.4 M=/home/longjun/arm2440/lcd_debug modules

make[1]: Entering directory `/home/longjun/linux-2.6.24.4'

  Building modules, stage 2.

  MODPOST 1 modules

WARNING: "sayHello" [/home/longjun/arm2440/lcd_debug/lcd.ko] undefined!

make[1]: Leaving directory `/home/longjun/linux-2.6.24.4'

最后找到了问题的根源是makefile出现了问题,于是将今天的收获记下来

新建a.h和a.c两个文件,用来测试

1、简单的在a.h文件中定义一个方法

#ifndef _A_H_

#define _A_H_

void sayHello(void);

#endif

2、在a.c中实现sayHello方法

#include"a.h"

void sayHello(void)

{

   printk("hello world!\n");

}

3.这是lcd驱动的文件结构,所有的文件都放在一个目录下

.    a.h            lcd.c     lcd.h     Makefile        types.h

..   framebuffer.c  lcddrv.c  lcdlib.c 

a.c  framebuffer.h  lcddrv.h  lcdlib.h

相关推荐