Linux Module编程小结

1. Makefile

使用Makefile来编译模块,不能直接使用gcc。

实际使用的是当前活动内核模块的Makefile来完成相关工作的。

 

ifneq ($(KERNELRELEASE),)

    obj-m := hello.o calculate.o

else

        KDIR := /lib/modules/2.6.18-53.el5xen/build

all:
        make -C $(KDIR) M=$(PWD) modules
clean:
        rm -f *.ko *.o *.mod.o *.mod.c *.symvers

endif

2. Makefile解析

obj-m:编译后生成的模块

-C $(KDIR): 指定make的目录是当前的内核源代码目录

-M=$(PWD):指定是外部模块,并且,指定模块文件目录是当前工作目录(pwd)

 

3. 符号导出

/proc/kallsyms:所有导出符号

 

导出样例:calculate.c

 

EXPORT_SYMBOL(add_integar);
EXPORT_SYMBOL(sub_integar);
~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值