Welcome 微信登录

首页 / 操作系统 / Linux / 多源文件的Linux驱动Makefile编写

以前写的的都是一些如led数码管简单的驱动,今天在写linux lcd驱动的时候,将代码分成了几个模块,每个模块用一个.h和.c对应,最后在组合在一起。结果在编译时总是提示函数未定义,但是我明明包含了头文件。make -C /home/longjun/linux-2.6.24.4 M=/home/longjun/arm2440/lcd_debug modulesmake[1]: Entering directory `/home/longjun/linux-2.6.24.4"  Building modules, stage 2.  MODPOST 1 modulesWARNING: "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);#endif2、在a.c中实现sayHello方法#include"a.h"void sayHello(void){   printk("hello world! ");}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