LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 799|回复: 6

内核和应用的头文件:

[复制链接]
发表于 2004-8-9 12:48:55 | 显示全部楼层 |阅读模式
1:在内核源码中的".c"文件中的头都包括:#include <linux/xxx.h>
这里的linux/xxx.h是指/usr/include/linux下的头文件?还是/linux-2.6.6/include/linux下的头文件(源码中的)
2: 应用中的linux/xxx.h头文件应该是/usr/include/linux/xxx.h吧?
3:源码中的头文件一定与/usr/include/linux/有关系,是什么关系呢?
4:象SDL, GTK, GDK,LIBPNG的库编译安装后,应该向其他应用提供头文件中的函数和数据结构,他们的安装路径是在/usr/include/下面吧?
发表于 2004-8-9 12:58:33 | 显示全部楼层
我觉得内核源代码包含的所有头文件都是自带的,而且没有连接任何标准库,而是完全自己实现的,例如lib/vsprintf.c就实现了printf函数集.
应用程序使用标准库和标准头文件,与内核中的头文件无关.
发表于 2004-8-9 13:02:43 | 显示全部楼层
1, 我认为是/linux-2.6.6/include/linux
2, 是的
3, 我以为是一样的,可实际上好像不完全一样
4, 那要看你如何安装,如果是rpm的,一般在/usr/include
如果是源码,可以在./configure时指定
比如./configure --prefix=/usr
如果不指定,一般在/usr/local/include
 楼主| 发表于 2004-8-9 13:03:44 | 显示全部楼层
/usr/include/linux/*.h或目录都与/linux-2.6.6/include/linux/*.h有十分相近之处,而且*.h中的内容都相同
 楼主| 发表于 2004-8-9 13:34:02 | 显示全部楼层
对于第三个问题:对内核make后,gcc对其编译,是找/usr/include/*还是找/linux-2.6.6/include/*呢?
发表于 2004-8-9 16:40:53 | 显示全部楼层
/usr/include下面那些是系统的glibc编译时候用的内核头文件,编译内核用的还是内核源代码目录下面的。
发表于 2004-8-11 17:53:33 | 显示全部楼层
我建议:以后这样的问题,可以把你怀疑的哪个头文件rename,编译不报错就说明不是include该头文件了;比如,应用编程include的
kernel.h是用/usr/include/linux的,不信你mv /usr/include/linux/kernel.h kernel.hbak就会报错了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表