问一个初学问题:怎么理解linux下的软件编译

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
zhtoad
帖子: 17
注册时间: 2008-09-10 19:16

问一个初学问题:怎么理解linux下的软件编译

#1

帖子 zhtoad » 2010-08-13 10:45

我学嵌入式linux系统,需要在pc的linux下编译嵌入式linux系统内核。
根据教程。我做了如下编译过程:

$ config_mini2440_t35 .config 让厂家提供的产品配置文件取代默认配置文件
$ make menuconfig 会出现一个内核配置裁剪的界面
$ make zImage 编译得到linux内核。

请问,
make只需要makefile。这个config文件是做什么用的?
两个make 为什么能得到不同的结果?第一个make在编译完还能运行一个软件。第二个编译了不同的源程序。
头像
allarem
帖子: 1025
注册时间: 2008-05-31 17:27
来自: SUES
联系:

Re: 问一个初学问题:怎么理解linux下的软件编译

#2

帖子 allarem » 2010-08-13 11:26

我的理解是:
一般config负责环境处理和编译器的选择等复杂的配置问题
而make只是一些命令的集合体
我是搞MCS51的……
lwbskfish
帖子: 323
注册时间: 2007-02-05 18:09

Re: 问一个初学问题:怎么理解linux下的软件编译

#3

帖子 lwbskfish » 2010-08-13 12:51

建议搜索内核编译常识,以及make命令简介。

当你运行make something的时候,make程序在当前目录下搜索名为Makefile的文件,在文件中搜索something区块,执行里面的所有命令

对于内核附带的Makefile来说,menuconfig区块指定操作是编译并运行配置程序,并载入.config文件到配置程序
zImage就是读取.config并按里面的配置编译内核

所以两个命令完成不同的任务,一切取决于Makefile是怎么写的。

至于.config,那是个配置文件,可以被menuconfig配置程序修改,它告诉内核要有哪些功能,不要哪些功能。默认功能很多,你公司嵌入式的配置文件里面的功能肯定很少,仅此而已。
thorne
帖子: 660
注册时间: 2008-10-08 22:01

Re: 问一个初学问题:怎么理解linux下的软件编译

#4

帖子 thorne » 2010-08-13 13:05

makefile里面就是一些
gcc xx
的命令

代码: 全选

其实我是个Debian GNU/Linux用户
Octave script :http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=254511
Octave中文:http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=318969
回复