|
|
发表于 2007-2-11 18:31:43
|
显示全部楼层
编译第三方内核驱动时, 必须使用[color="Red"]和内核一致的头文件:
(假设你的内核是 kernel-x.y.z-p-arch , 对于2.6.8-3-i686来说 x=2, y=6, z=8, p=3, arch=i686)
你必须安装的debian包: kernel-header-x.y.z, kernel-header-x.y.z-arch 使用的头文件是
/usr/src/kernel-header-x.y.z-p/
/usr/src/kernel-header-x.y.z-p-arch/
这种情况只在编译驱动时发生.
=====================================================
而编译用户程序时, 如果用到内核函数,使用的是和 glibc 一致的内核头文件, 一般是 /usr/include/linux 和 /usr/include/asm 这两个. 他们的deb包是 linux-kernel-header, 和内核版本无关.
上面这种情况, 只有在你的程序需要使用和内核直接相关的函数(比如 ioctl )时才会碰到. 实际生活中, 我们日常用到的95%函数都不是上面的情况, 比如 printf(), read() ...
这些函数都是使用 gcc, glibc 自带的头文件. |
|