免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4468 | 回复: 1
打印 上一主题 下一主题

stdio.h no such file!!!!!!!编译驱动发生这个错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-15 22:57 |只看该作者 |倒序浏览
本帖最后由 楼下的房东 于 2012-09-15 23:04 编辑

我现在在编写个驱动程序。
  1. #include <stdio.h>
  2.     #include <string.h>
  3.     #include <fcntl.h>
  4.     #include <errno.h>
  5.     #include <termios.h>
  6.     #include <unistd.h>
  7.     #include <xdo.h>
  8.     #include <X11/Xlib.h>
  9.     #include <X11/keysym.h>
复制代码
前面include了这么一段话。当makefile的时候。显示没有相应的stdio.h。 不是没有装build-essential. 这些要include的.h文件全在usr/include下面。本来没有的也装了。现在用最普通的Makefile编译
  1. ifneq ($(KERNELRELEASE),)
  2.     obj-m        := b.o

  3. else
  4.        
  5.     KDIR        := /lib/modules/$(shell uname -r)/build
  6.     PWD                := $(shell pwd)

  7.     default:
  8.         $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
  9.     endif
复制代码
在终端中显示
  1. make -C /lib/modules/3.2.0-29-generic/build SUBDIRS=/media/SYSTEM/a modules
  2. make[1]: Entering directory `/usr/src/linux-headers-3.2.0-29-generic'
  3.   CC [M]  /media/SYSTEM/a/b.o
  4. /media/SYSTEM/a/b.c:1:23: fatal error: stdio.h: No such file or directory
  5. compilation terminated.
  6. make[2]: *** [/media/SYSTEM/a/b.o] Error 1
  7. make[1]: *** [_module_/media/SYSTEM/a] Error 2
  8. make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-29-generic'
  9. make: *** [default] Error 2
复制代码
我查过我编译成功的例子。所有编译成功的。都是include <linux/*.h>这种格式的。然后.h文件一般都在源码中有。而在usr/include下面没有的。而这次要include的文件全在usr/include下。个人绝得是include的地址搞错了。但是又不知到Makefile如何修改。网上大多是内核2.4版本的Makefile资料根本就没用。请各位看看是怎么回事。

论坛徽章:
0
2 [报告]
发表于 2012-09-17 23:47 |只看该作者
对于编译内核模块,引用的头文件并不是系统的/ust/include下的文件,而是kernel source下的include目录中的文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP