当前位置: 技术问答>linux和unix
修改内核代码问题:如何编译修改的单个文件而不用重建整个内核?
来源: 互联网 发布时间:2015-06-22
本文导语: 现在需要修改内核中的某一个文件(比如说是ipc/shm.c); 如何只编译这一个文件?如果直接用gcc,会出很多的错误,大多都是"头文件"未找到和"变量未定义"之类的. 请问大家该怎么搞啊?谢谢 | 编译内...
现在需要修改内核中的某一个文件(比如说是ipc/shm.c);
如何只编译这一个文件?如果直接用gcc,会出很多的错误,大多都是"头文件"未找到和"变量未定义"之类的.
请问大家该怎么搞啊?谢谢
如何只编译这一个文件?如果直接用gcc,会出很多的错误,大多都是"头文件"未找到和"变量未定义"之类的.
请问大家该怎么搞啊?谢谢
|
编译内核从来都不是你自己用gcc来编译的,都是用make工具来编译的,有以下几步
make dep 检查依赖关系
make bzImage 编译内核
make modules 编译模块
如果你是修改了之后编译内核,那就直接用以上步骤就可以了。
如果你把其中一个文件拿出来修改想自己用,这个是很麻烦的,需要你对内核源代码的结构比较清晰才可以做啊。
make dep 检查依赖关系
make bzImage 编译内核
make modules 编译模块
如果你是修改了之后编译内核,那就直接用以上步骤就可以了。
如果你把其中一个文件拿出来修改想自己用,这个是很麻烦的,需要你对内核源代码的结构比较清晰才可以做啊。
|
你把shm.c中用到的相关文件都找出来,
然后写一个Makefile,
应该是可以搞定的
然后写一个Makefile,
应该是可以搞定的
|
看看有关Makefile的文档资料
多试几次,
每个人开始都是初学者 :)
多试几次,
每个人开始都是初学者 :)
|
你的LINUX的内核如果是2.6.x的话就简单了。
直接在内核源代码目录下运行:make + 相应的路径即可。
直接在内核源代码目录下运行:make + 相应的路径即可。
|
最终要连接进去吧!除非是module
|
内核只有一个文件,都得重新整个编译吧,就算不全部重新编译,链接也使免不了的
|
不make clean,就不用全部重新编译了,单如楼上所说要连接