libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1605回复:5

请问LINUX驱动编译问题

楼主#
更多 发布于:2004-03-26 15:28
是不是编译LINUX驱动的时候,系统中必须包含/usr/src/linux/include/***.h
如果我得系统中不包含这些内核头文件,那么编译得时候是不是报错,找不到内核函数得定义??


我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-26 15:36
头文件的作用哪个地方不是一样的?
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-26 17:28
头文件的作用哪个地方不是一样的?

但是驱动程序里是这样写的#include <linux/module.h>
#include <linux/kernel.h>
我的系统里根本不存在这些文件,那编译能通过??
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
zzzmy2003
驱动牛犊
驱动牛犊
  • 注册日期2003-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-01 14:44
[quote]头文件的作用哪个地方不是一样的?

但是驱动程序里是这样写的#include <linux/module.h>
#include <linux/kernel.h>
我的系统里根本不存在这些文件,那编译能通过?? [/quote]

不行啊,我的一个简单的驱动程序,有一大堆的错误,气晕我了!大部分都是头文件的错,在.../usr/include/linux/中的头文件,不知怎么办?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-02 11:10
gcc的编译选项加上-I/usr/src/linux2.4.xx/(源代码连接目录)/linux,
就OK,记得还要加上-DMODULE -D__KERNEL__


[编辑 -  4/2/04 by  antspower]
放弃瘟草,现吃李草
rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-11 11:20
那是因为你在安装linux的时候没安装KERNEL源程序包.在第二张光盘里,包的名字是kernel-srcXXXXX.rpm,XXXX与版本名相对应,你找一下,然后用rpm -Uvh 包名就可以了.装好后还不能马上用,因为默认kernel目录为/usr/src/linux-2.4.X/,你必须ln -s一下或者改名为linux,这样就可以了.请问楼主是否编做过linux内核编程?内核编程的编译是很烦琐的事情,相信找不到头文件这事情只是个开端.不过别被困难吓倒了,呵呵.慢慢积累经验吧,用不了多久就会成高手的.
游客

返回顶部