Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100641
  • 博文数量: 11
  • 博客积分: 1581
  • 博客等级: 上尉
  • 技术积分: 241
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-13 01:12
文章分类

全部博文(11)

文章存档

2012年(3)

2011年(3)

2010年(5)

我的朋友

分类: LINUX

2011-03-11 17:28:19

如果我们有多个c文件,可以在test-objs参数中加入他们的obj文件。接下来就是make了,编译后,生成hello.o文件和hello.ko,还有hello.mod.c及其obj文件,Module.markers Module.sysvers Modules.order 文件。 

  我们对多个*.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。
阅读(2089) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~