Linux基础知识(二)——开发工具(编辑器、编译器)相关知识

一、常用的编辑器, 并对比这些编辑器的区别和优缺点.。
1、gVim(vim-gnome)

gVim是Vim的图形前端,它是跨平台的编辑器,基本上主流的操作系统上面都有它的版本。这是一个国际版本,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,极具Unix特色和风格。
在Linux Mint 12软件管理器中, gvim被叫做vim-gnome。

2、Emacs(Editor MACroS(编辑器宏))

Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中,在基于编辑器的功能基础上,Emacs自行开发了一个"bourne-shell-like"的shell: EShell。
Emacs特点:交互式编辑器、实时编辑器、高级编辑器、自文档化、可定制性、可扩展性(集成Lisp语言)、支持X Window环境。
Emacs是目前世界上最具可移植性的重要软件之一,能够在当前大多数操作系统上运行,包括类Unix系统(GNU/Linux、各种BSD、Solaris、AIX、IRIX 等等)、MS-DOS、Microsoft Window 以及OpenVMS等,还有移动Android平台以及iOS。

3、gredit

gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它使用GTK+编写而成,因此它十分的简单易用,有良好的语法高亮,对中文支持很好,支持包括gb2312、gbk在内的多种字符编码。gedit是一个自由软件。

这是 Linux 下的一个纯文本编辑器,但你也可以把它用来当成是一个集成开发环境 (IDE), 它会根据不同的语言高亮显现关键字和标识符。

4、MC(Midnight Commander)

MC内置了文档阅读器和编辑器。可以直接从命令行进入此二者,也可以从进入MC后,按F3 (viewer)和F4(editor)进入。

5、vim(Vi IMproved)

Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

二、 除gcc之外的常用的编译器(不限制编程语言, 不限制平台)

1、什么是编译器?

简单讲,编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。

2、有哪些常见的编译器?

Visual Studio:

Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。

C++ Builder:

C++ Builder是由Borland公司推出的一款可视化集成开发工具。C++ Builder具有快速的可视化开发环境:只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++ Builder内置了100多个完全封装了Windows公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件;C++ Builder具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等。它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。

Turbo C:

Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, TurboProlog, 这些软件很受用户欢迎。

Visual C++

VC++6.0是VisualStudio、VisualStudio.net 2002、VisualStudio.net 2003、VisualStudio.net 2005的后台C++编译器。随着Stanley Lippman等编译器设计大师的加盟,它变得非常成熟可靠了。Visual C++7.1对标准C++的兼容性达到98.22%。

 Dev-C++:Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL许可协议分发源代码。它集合了MinGW等众多自由软件,并且可以取得最新版本的各种工具支持,而这一切工作都是来自全球的狂热者所做的工作。Dev-C++是NOI、NOIP等比赛的指定工具,缺点是Debug功能弱。

三、为什么调试的时候需要编译选项中添加 -g?

加选项-g是为了能够调试。不加可以运行,但不能调试。

用gdb进行调试纠错前必须要在编译选项中添加“-g”,“-g”标志是对程序进行调试性编译时常用的选项。我们需要给每一个需要调试的源文件都加上这个选项。它将使用特殊版本的C语言标准库完成编译和链接操作,给库函数加上程序调试方面的支持。编译器会把这些标志自动传给链接器。

四、关于readelf命令

1、readelf命令的作用

readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。 

2、命令选项

-a  --all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. 

-h   --file-header 显示elf文件开始的文件头信息. 

-l   --program-headers  
--segments 显示程序头(段头)信息(如果有的话)。 

-S 
--section-headers  
--sections 显示节头信息(如果有的话)。 

-g 
--section-groups 显示节组信息(如果有的话)。 

-t 
--section-details 显示节的详细信息(-S的)。 

-s 
--syms        
--symbols 显示符号表段中的项(如果有的话)。 

-e  --headers 显示全部头信息,等价于: -h -l -S 

-n  --notes 显示note段(内核注释)的信息。 

-r   --relocs 显示可重定位段的信息。 

-u  --unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。 

-d  --dynamic 显示动态段的信息。 

-V  --version-info 显示版本段的信息。 

-A  --arch-specific 显示CPU构架信息。 

-D  --use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。 

-x <number or name> 
--hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。 

-I  --histogram 显示符号的时候,显示bucket list长度的柱状图。 

-v  --version 显示readelf的版本信息。 

-H  --help 显示readelf所支持的命令行选项。 

-W --wide 宽行输出。 

五、 在Linux下实现进度条程序. 通过makefile进行编译. 建议自主完成一个彩色的进度条.。

源文件:

#include<unistd.h>
#include<string.h>
#include<stdio.h>

int main()
{
        int i=0;
        char bar[100];
        const char *label="|/-\\";
        memset(bar,0,sizeof(bar));
        while(i<=100)
        {
                printf("[%-100s][%d%%][%c]\r",bar,i,label[i%4]);
                fflush(stdout);
                bar[i++]='#';
                usleep(10000);
        }
        printf("\n");
        return 0;

执行结果如下:
这里写图片描述
六、Linux下软件安装的几种方式(源码安装, rpm安装, yum安装)并重点理解rpm安装和yum安装的区别。

1、源码安装

源码安装的步骤:编译源码,然后安装。
a.首先用yum安装gcc,用于编译源码
b.官网下载源码包
c.解压
d.进入解压后的目录配置软件 ./configure#大多数情况下源码包都会带configure这样一个配置工具,具体使用方法可以vim查看其内容 。
e.make #编译源码包,如果报错了make clean清除缓存重新make
f.make install #安装,然后删除源码包软件和安装目录。

2、rpm安装

rpm安装就是:安装别人编译好的软件包。如果依赖的文件没有事先安装,软件无法安装成功。

3、yum安装

yum在安装软件同时安装依赖软件。因此需要一个yum源来放依赖的软文件,对比被安装机器上rpm软件库。yum也是基于rpm的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值