GCC

Linux的第一课就是学习它用到的编译器GCC。
推荐的书籍:《An introduction of GCC》和《expert C programming》

History:

在自由软件教主Richard Stallman的时代,基本上所有的软件都是收费的,不开源的,例如当时的Windows和Unix。于是教主就发起了一个GNU的活动(GNU的定义就是GUN is Not Unix)。这个活动的目标就是发展一个Unix-like的操作系统,但是当时这个活动面临着一个重大的问题就是没有一个开源的C语言的编译器,于是GCC(GCC是用C语言写的,GNU C Compiler)就应运而生,这就为Linux的诞生和发展打下了坚实的基础,以后的好多的系统软件业基本上是用C语言写的,并用GCC编译实现的。现在的GCC已经不再仅仅作为C的编译器了,同时还能编译其他的语言,但是其主要的活还是C。

GCC可以交叉编译,有很好的跨平台的特性。比如,embedded system,因为它太小,不可能跑一个compiler,这时就可以现在PC机上编译,然后在烧到embedded system中去。

实战前知识准备:

有关Windows和Linux在执行可执行文件的时候,他们搜索可执行文件的方式是不一样的,Windows首先会在当前目录下搜索,然后再到path的路径中搜索。但是Linux不会直接搜索当前目录,他直接搜索path的路径(当然,完全可以把当前路径放到path中去,但是不提倡这样做)。所以Linux中要运行当前目录的可执行程序,要用绝对或者相对路径,一般的还是相对路径,也就是通过./xxx.extension这样的形式运行可执行程序。

实战:

原文地址:https://www.cnblogs.com/stemon/p/3318871.html