为什么要编译linux内核(beaglebone的开发板)
我现在再要linux上用vi给arm编程,我用的ubuntu的10.04版本,发现写了好多头文件都不能用,比如#include<linux/gpio.h>这个,用arm-...
我现在再要linux上用vi给arm编程,我用的ubuntu的10.04版本,发现写了好多头文件都不能用,比如#include<linux/gpio.h>这个,用arm-arago-linux-guneabi-gcc编译,发现头文件就通不过。。。。我看到附带的光盘资料里面有source这个文件夹,里面有好多.c文件还有makefile和config什么东西的,是不是这个就是内核,要在linux系统下编译一下呀(回答好的我在加10分,求指导啊)
展开
3个回答
展开全部
1、头文件不能用,就是说编译器找不到,要么是头文件的位置不对,要么是根本没有所需要的头文件;比如#include<linux/gpio.h>,那就是在你的linux源码目录中的include/linux/目录下要有gpio.h这个文件,如果没有,自然就编译通不过了。
2、你所说的光盘资料source文件夹,因为我也没有你的光盘,所以无法确定它的内容到底是不是内核,makefile文件是编译器所需要的依赖关系文件,config文件就不清楚了,如果是kconfig文件,那就是内核的配置文件。
2、你所说的光盘资料source文件夹,因为我也没有你的光盘,所以无法确定它的内容到底是不是内核,makefile文件是编译器所需要的依赖关系文件,config文件就不清楚了,如果是kconfig文件,那就是内核的配置文件。
追问
我把光盘资料source文件夹下的头文件拷到linux系统里面,放到linux源码目录中的include/linux/目录下可不可以?
追答
假定你的source文件夹就是linux内核文件,那么它的头文件有很多,并不全部在include/linux下面,你确定只需要这个目录下文件就可以拷贝。
展开全部
楼上解释的比较清楚了,我再补充一点关于是不是内核的问题,根据你说的source应该是一个用来配置内核的软件,你用终端cd到makefile的目录下用make命令应该会得到一个软件,这个软件应该就是uimage,你可以用它来选择编译的linux模块有哪些需要用,当然这就不是内核了,这个你可以在网上随便下一个内核看看就知道了,里面有arch,block,mm之类的文件夹这些在网上都可以搜到解释,每个文件夹里装得什么也有说明,所以你的source应该不是内核。
至于为什么要编译内核这个问题比较难解释,你只要知道只有编译成二进制文件才能烧录进开发板就可以了,这个和写软件要编译后才能执行是一个道理
至于为什么要编译内核这个问题比较难解释,你只要知道只有编译成二进制文件才能烧录进开发板就可以了,这个和写软件要编译后才能执行是一个道理
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Linux是开源的操作系统,她将程序等模块化,然后编译加到Linux的内核上。而Linux内核是排除了所有应用模块但能够维持系统运行的那些最基础的模块,编译内核就是为了让程序开发人员为了根据自己的需要将那些对自己无用的模块去掉,保留自己需要的功能模块。在此基础上再添加新的模块方便开发人员进行一系列开发工作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询