Linux开发工具

本文介绍了Linux环境下常用的编辑器,如Vim、Emacs、Nano、Eclipse等,并进行了对比;同时探讨了各种编译器,如gcc、g++、Visual C++、Borland C++等的特点;此外还讲解了如何在Linux下实现进度条效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux开发工具

一、调研除了vim, 还有哪些常用的牛逼的编辑器, 并能够横向对比编辑器之间的区别和优缺点.

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

Emacs:

Emacs与vim比起来,编辑效率低下。Emacs强调统一的环境,便于编程,里面包含了源代码管理,邮件收发等,最重要的是所谓与gbd出自一家,兼容性好。

Nano:

nano只是一个类似emacs的简单编译器,linux下有很多文本编辑器,其中系统(不管哪个分支)都会自带nano,但nano功能很少。

Eclipse:

Eclipse是一款很酷的开源代码编辑器,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript, Natural, Lasso, C, C++, COBOL, Scheme,Clojure, Groovy等等,它也是Java集成开发环境,甚至提供了对Java 8的支持。在一些Web开发IDE特性的帮助下,你可以非常方便地对代码文件进行组织和访问。

二、调研除了gcc, 还有哪些常用的牛逼的编译器(不限制编程语言, 不限制平台).

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

Visual C++:

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

Borland C++:

该编译器以速度快、空间效率高而著称。它的5.5版本对标准化C++的支持达92.73%,而官方称100%符合ANSI/ISO的C++标准和C99标准。

它是Borland公司开发的,是Borland C++ Builder和Borland C++ Builder X这两种IDE的后台编译器。

g++:

g++是一个开源的C++编译器,GCC3.3对标准化C++的支持达96.15%。

值得一提的是,gcc是gnu c的编译器, g++是gnu c++的编译器, 而egcs(Enhanced GNU Compiler Suite)可以认为是gcc的改进版。目前gcc已经改名,从原来代表GNUC Compiler改变为代表GNU Compiler Collection。而MinGW或Cgywin,是在windows平台上的gnu c/c++编译器,以及库文件,运行环境的集合。

三、为什么调试的时候需要编译选项中添加 -g. 同学们自行调研readelf命令.

gcc 选项-g 生成调试信息。GUN调试器可利用该信息

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

readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示哪些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。这个程序和objdump提供的功能相似,但是它显示的信息更为具体,并且它不依赖BFD库(BFD是一个GNU项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件),所以即使BFD库有什么bug存在的话也不会影响到readelf程序。运行readelf时,除了-v和-H之外,其他的选项必须有一个被指定。

命令参数:

<1> -h 或者–file-header。显示在elf文件头里包含的所有信息。

<2> -l 显示程序头表信息, 包括有几个段,每个段的属性,以及每个段中包含有哪几个节

<3> -S 显示节区表内所有的信息,包括每个节的属性

<4> -h 显示所有头的信息,包括elf文件头,程序头和节头,即“-l,-h,-S”的组合。

<5> -s 显示符号表的信息,包含静态符号表和动态符号表。如果指关心动态符号表,可以直接用“-d”。

<6> -r 显示所有定位入口的信息。

四、Liunx下实现进度条
进度条代码:
这里写图片描述
执行结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值