多个模块编成一个模块
来源:互联网 发布:淘宝打不开微信链接 编辑:程序博客网 时间:2024/05/19 03:21
单个文件编译一个模块:
- ifneq ($(KERNELRELEASE),)
- obj-m := mini2440_leds.o
- else
- KDIR := /opt/FriendlyARM/mini2440/linux-2.6.32.2/
- all:
- make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
- clean:
- rm -f *.ko *.o *.mod.o *.mod.c *.symvers
- endif
多个文件编译成为一个模块:
我们对多个 *.c 文件情况做一个说明:我们希望创建一个模块的名字叫做hello,我们有三个*.c文件,分别为hello.c, file1.c和file2.c。这样是有问题的,
因为在Makefile中 obj-m := hello.o,这是指定模块的名称,
hello-objs := file1.o file2.o hello.o,这里是说hello模块包括的的obj文件,
如果我们在里面不填写hello.o,那么实际并没有编译hello.c,而是在CC[M] file1.o和file2.o,通过LD[M]得到模块hello.o,
如果我们在这里填写了hello.o,那么在obj-m和hello-objs中都含有hello.o,对make来讲会产生循环和混淆,因此也不能这样书写。
如果我们由多个C文件来构造一个模块,那么C文件的名字不能和模块名字一样, 在这个例子中我们可以将hello.c改名为hello_main.c,在Makefile中obj-m := hello.o,hello-objs = file1.o file2.o hello_main.o。
比如,当前目录下有如系文件:
hide_file.c hook.c k_file.c config.h hook.h k_file.h
想编译为模块 root.ko 其中hook.c 为主文件,Makefile 可以用如下办法写:
- EXTRA_CFLAGS := -g -O2
- ifneq ($(KERNELRELEASE),)
- obj-m = root.o
- root-objs := hide_file.o hook.o k_file.o
- else
- KDIR := /home/sina/work/rootkit/linux-3.0.1
- all:
- make -C $(KDIR) M=$(PWD) KBUILD_EXTRA_SYMBOLS=./Module.symvers modules
- clean:
- rm -f *.ko *.o *.mod.o *.mod.c *.order *~ *.symvers
- endif
KDIR 也可以写成如下形式:
KVERS=$(shell uname -r)
KDIR :=/lib/modules/$(KVERS)/build 0 0
- 多个模块编成一个模块
- 多个源文件编译成一个模块注意Makefile 书写
- 将一个Maven项目分为多个模块
- ajax+jQuery实现一个页面同时加载多个模块!
- ajax+jQuery实现一个页面同时加载多个模块!
- 一个模块
- 如何在一个FPGA中实现多个UART接口模块?[
- Linux Kernel Module编程,多个源文件编译成一个模块的解决方案
- Linux Kernel Module编程,多个源文件编译成一个模块的解决方案
- 一个驱动模块依赖多个C文件的Makefile写法
- linux 上源码安装Nginx (concat模块) js、css多个请求合并为一个请求
- nginx js、css多个请求合并为一个请求(concat模块)
- 多个*.c文件编译生成一个模块驱动*.ko的makefile文件编写
- 在多个Android项目工程中共享一个库模块
- nginx js、css多个请求合并为一个请求(concat模块)
- jfinal 按模块功能分类 一个web工程+多个java工程
- 在一个idea工作环境中导入多个maven项目模块
- Struts多个配置文件或模块支持
- GridLayout 表格布局
- SQL 查找一个字段的首字母是以A~Z为首的数据
- PHP编程的50个细节
- 高德地图中缩放级别(zoom)和比例尺(getScalePerPixel)之间的计算关系
- 对立事件
- 多个模块编成一个模块
- 轻松搞定word中让人抓狂的自动编号
- HDU 3693 Math teacher's homework (数位DP?)
- PHP文件包含漏洞总结
- LOJ 1294 - Positive Negative Sign
- python logging - 初级
- Java解决游戏界面闪屏
- 字符串的加密和解密
- linux之V4L2摄像头应用流程