LinuxSir.cn,穿越时空的Linuxsir!

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

编译内核时为什么要将/usr/include/asm等目录指向源代码目录内的文件夹

[复制链接]
发表于 2007-7-26 22:33:35 | 显示全部楼层 |阅读模式
内核源代码应该是一个自封闭, 不可能会引用/usr/include/asm内的头文件, 然后/usr/include/asm又是一个链接又回到源代码自身的一个子目录下, 那还不如干脆直接include自己的子目录下的文件呢, 是不是, 不但直接, 而且还能防止用户错误的将/usr/include/asm指向其他目录导致的失败, 岂不是更完美???

我的猜想是编译内核是不需要这一步的, 不过等编译好的内核开始运行后, 由于普通程序编码时可能需要某些头文件, 这是就需要保证该头文件是 the running kernel的头文件了, 毕竟编出的程序是运行在该 kernel上的。
 楼主| 发表于 2007-7-27 00:55:13 | 显示全部楼层
做了这样一个试验, 将那几个目录删除, make *config的时候出错,不能编译, 原因是执行该命令时, 实际上即时编译了一个配置工具, 就是一个运行在当前内核下的普通程序, 该程序编译需要以上头文件, 当配置好后再次将哪几个目录删除, 运行 make 编译内核, 顺利进行, 那说明在真正编译内核过程中, 是不需要要这几个目录的, 唯一不确认的是删除哪几个文件夹是编译开始后进行的, 开始后才记起来作试验, 呵呵, 不过应该能够说明问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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