Linux下编译器的简介,Linux编译器简介


 

在整个linux中,我们使用最多的编译器真的vim了,全名我也不说了,没有多大意义,我们就是通过它来写我们的代码的。如果你有强迫症的话,那么选择使用gedit我也是没话说的啦!

话说其实我也在使用一些红帽的linux,但是在这个过程中,我觉得自学最受欢迎的应该就是ubuntu,我正是在使用Ubuntu感觉其良好的用户体验是我所看重的,在这里说一些题外话,为何中标麒麟,国产的OS,其实内核就是linux,中标为何要把他作为自主生产的操作系统呢?光做做界面仿照windows xp真的好吗?

Ok,我们回归正题,今天讲的是我们的编辑器-vim!

在学习linux的时候,其实我们很好奇一件事,当别人每次编辑的时候,你会发现,呀,为什么每一行都有一个对应行数的数字呢?各种高大上啊!其实啊,这个涉及到一些环境变量的设置,后面学习到了大家自然会理解,现在只要知道如何去实现就可以了!以下就是我的操作了!

回车就行了!

这个是我已经设置好的效果,先给大家亮相一下!

在vimrc这个设置文件最后一行后面加入这3行代码就行了

大家可以看到"ime 其实前面的"是这个文件的注释标志,ime会让你显示菜单,就如我上面所亮相的一样,如果你是像现在这个样子,OK,直接vim 就可以进入编辑,不会出现提示了,这也是可以节约界面资源,让自己看的更清晰。所以我一般选择把它注释掉。

有了这3行代码,ok,你的编辑器也具备自动给行号的能力了!

下面就要说vim如何使用了,对不?

嗯嗯,首先了解一下Vim,它强大地可以把C中的关键字都高亮化,代码高亮,让我们更加清楚地看清代码!

其有3种模式

一般模式:

在你输入vim show.c这句话时,按回车,ok,你就默认地进入到了一般模式下!

一般模式下只能查看内容,不能做任何操作!

然后你只要轻轻的按下键盘的I键,ok,你进入了编辑模式!当然通过ESC键可以退出编辑模式,进行另外的操作!

在编辑模式下,你会看到在最底下出现插入字样!于是你就可以进行编辑了!

按ESC键 再输入: Ok 进入底行模式

看到底下的 : 了吗?这就是底行模式的标准态

输入:1、w 作用:写

2、q 作用:退出

3、! 作用:强制操作

到目前为止,我所用的就这3个,当然他是可以混搭使用的! 如:!wq 强制保存(写)后退出vim!

哈哈,额,貌似我有遗漏的东西,对了,在一般模式下:你可以使用:

【】yy 【】为从光标开始的行数,是为选定。可以不写【】!表示只选择了一行!

然后你可以使用dd 删除,也可以把光标移动到你想要的地方按p直接将选中的复制过来!

OK,编辑器讲完了,那么最重要的就是编译器了!gcc就是linux中最常用的编译器!

今天就大略地给大家看看!

Gcc编辑show.c文件后将自动生成a.out的可执行文件!OK,那么现在让我们来运行它吧!

非常棒,可以看到我们成功了!


Linux 下怎装 C 编译器

2004年4月20日最新版本的GCC编译器3.4.0发布了。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。GCC 3.4.0比以前版本更好地支持了C++标准。本文以在Redhat Linux上安装GCC3.4.0为例,介绍了GCC的安装过程。

安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。

系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。

按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。

1. 下载

在GCC网站上( gcc.gnu.org/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.4.0。可供下载的文件一般有两种形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。

2. 解压缩

根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):

% tar xzvf gcc-3.4.0.tar.gz
或者
% bzcat gcc-3.4.0.tar.bz2 | tar xvf -

新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。

在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。

3. 建立目标目录

目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。

例如,可以这样建立一个叫 gcc-build 的目标目录(与源目录${srcdir}是同级目录):

% mkdir gcc-build
% cd gcc-build

以下的操作主要是在目标目录 ${objdir} 下进行。

4. 配置

配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${......余下全文>>
 

Linux下gcc编译介绍

Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
Gcc的执行过程
虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。
命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。

Gcc的基本用法和选项
在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。
Gcc最基本的用法是∶gcc [options] [filenames]
其中options就是编译器所需要的参数,filenames给出相关的文件名称。
-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、连接,当然整个编译......余下全文>>
 

相关内容