make和gcc都是编译,区别是什么?

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

make和gcc都是编译,区别是什么?

#1

帖子 mvsqr2 » 2009-09-07 18:37

gcc我知道是用来编译C的
那么make呢?编译什么样的文件?为什么安装软件的时候先make再make install?前者后者有什么不同?

再问个菜鸟问题,gcc编译后生成的输出文件a.out。运行该文件为什么用./a.out?
这个./是什么意思?我知道“点”表示当前目录,不过觉得另有其他说法!!
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: make和gcc都是编译,区别是什么?

#2

帖子 wangdu2002 » 2009-09-07 18:58

make是指示根据makefile文件确定的规则,完成全套编译过程,因为源文件可能很多,依赖很复杂,所以才必须用Makefile写清楚执行规则,这个过程会调用多次的gcc或g++。
make只是完成编译过程,sudo make install才是把编译好的文件复制到各个系统文件夹内,加sudo是提权,否则,不能随便往系统目录写入文件的。
GCC广义的指GNU编译器集合,gcc狭义的指gnu的c编译器,g++指gnu的C++编译器。
./就是明确指示执行当前目录下的文件,就是这个意思,省时查找默认环境变量所指定的各个目录。
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

Re: make和gcc都是编译,区别是什么?

#3

帖子 hubert_star » 2009-09-07 22:01

一个是包工头,一个是民工(们)
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
qiang_liu8183
论坛版主
帖子: 10699
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

Re: make和gcc都是编译,区别是什么?

#4

帖子 qiang_liu8183 » 2009-09-07 22:05

黑手的比喻很形象
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
mvsqr2
帖子: 13
注册时间: 2009-08-17 22:10

Re: make和gcc都是编译,区别是什么?

#5

帖子 mvsqr2 » 2009-09-07 22:20

嗯!真的很详细!受教了!
回复