Linux 开发工具

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

(1)vim

是从vi发展出来的一个文本编辑器。代码补完、编译错误跳转等方面得功能特别丰富,在程序员中被广泛使用。

(2)sed

是一种流编辑器,他一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样重复,直到文件末尾。文件内容并没有改变,除非你使用重定向的存储输出,sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。

(3)emacs

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

a.交互式编辑器

b.实时编辑器

c.高级编辑器

d.自文档化

e.可定制性

f.可扩展性极强(集成Lisp语言)

g.支持X Window环境

(4)nano

只是一个类似emacs的简单编辑器,linux下有很多文本编辑器,其中系统(不管哪个分支)都会自带nano,但nano功能很少。操作简单,界面简洁,适合Linux新手学习

(5)Light Table

是一个免费开放源代码的编辑器,该编辑器有一个非常干净的界面,并有大量扩展。它与Windos、Mac和Linux都兼容,是高度可定制的。使用Light Table,开发者只需要打开一个浏览窗口即可实时查看更改,并且支持不同的嵌入。

(6)Chocolat

本身是Mac  OS X的最佳代码编辑器。该编辑器旨在与OS无缝集成,Chocolat为JS、Python和HTML提供拖放功能、拆分编辑、代码折叠和代码完成。其他一些功能是:

a.广泛搜索和替换

b.错误检查

(7)Notepad++

是开源的轻量级的代码编辑器,可以自由使用,是新手和专家的理想选择。支持的语言列表包括WordPress开发人员在开发复杂过程中所需的一切。其他一些功能是:

a.重点语法突出

b.支持FTP

c.外部插件

d.跨平台兼容性

e.代码和文本折叠

f.编辑器集成

(8)Sublime Text

紧凑但性能较高,一个跨平台的代码编辑器。在屏幕上看起来很漂亮,表现非常出色,适用于所有WordPress项目。其他一些功能是:

a.脚本编程

b.自定义界面

c.常规文件切换

d.合成和错误检测

e.多媒体选择和编辑

f.外部插件集成

g.Themes

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

(1)MSVC,Windows平台上最常用的编译器,在C++编译器圣战中的胜利者。随着微软发布基于Clang/C2,这一条路以后若成功MSVC与Clang/C2并行甚至逐步退出舞台是很有可能的。

(2)Clang,重点介绍。licence极度友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,各大公司逐步发力在Clang上,包括不限于微软,IBM,Nvidia等,各大公司也在开始疯狂的往Clang / LLVM交代码(圈地),也开始往Clang实现OpenMP,Nvidia GPU等支持,目前在赶超GCC的道路上一路激情的狂奔,前途一片光明。但是Clang依赖于的LLVM,目前的性能无法与GCC相提辩论,在Benchmark性能测试上几乎没有胜利的项目,优化的道路上任重道远,同时一些开源软件没有办法编译过去,主要是缺乏对GCC 一些Builtin函数、自身带的汇编器的孱弱导致。

(3) GCC/G++,跨体系结构很多,很多开源软件默认编译器都是GCC/G++,这一点上Clang比不上。
(4) ICC,没有自己专门的前端(传说中的外包),而且是针对Intel体系结构上专门优化。
(5) IBM XL C++,在IBM特定硬件与平台上表现非常牛逼,Benchmark性能测试非常优秀,其最初的设计思想就是为了性能,其最高优化级别可以达到O5,带来的缺点则是在编译时间上往往过长。而另外一个常被人诟病的是对C++标准的支持、开源软件的支持、错误信息的提示上都不够友好,然而从13.2开始,随着IBM采用Clang融合方案,目前这几项都得到有效改良,然而融合的道路也必定是漫长的,以前的历史包袱等也需要背上。


3. 为什么调试的时候需要编译选项中添加 -g.

 调试的时候需要编译选项中添加 -g. 加选项-g是为了能够调试。不加可以运行,但不能调试。

4.readelf命令.

(1)功能:用来显示elf格式文件的信息

(2)用来显示一个或多个elf格式的目标文件,可以通过它的选项来控制显示那些信息。这里的elf-file(s)

就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也就是包含elf文件的文档(这里一般指的是ar命令将

一些elf文件打包之后生成的例如lib*.a之类的“静态库文件”)。这个程序和objdump提供的功能类似,但是他显示的

信息更为具体,并且它不依赖BFD(BFD库是一个GNU项目,它的目的就是希望通过一种统一的接口来处理不同的目标

文件),所以即使BFD库有什么bug存在的话也不会影响到readelf程序。运行readelf的时候,除了-v和-H之外,其他的

选项必须有一个被指定

6. Linux下软件安装的几种方式(源码安装, rpm安装, yum安装).

重点要理解rpm安装和yum安装的区别. 

(1)源码安装

是需要自己到网上下载源码包,然后解压安装。此方式可以指定配置参数,更加灵活方便,兼容性更强。

比较适合对Linux系统有较多了解的进阶用户使用。

具体安装步骤:

a、找到相应的软件包,比如***.tar.gz,下载到本机某个目录; 
b、打开一个终端,su -成root用户; 
c、cd ***.tar.gz所在的目录; 
d、tar -xzvf ***.tar.gz //一般会生成一个soft目录 
e、cd *** 
f、./configure -----为编译做准备
g、make ---------软件编译
h、make install------完成安装

(2)rmp安装

安装别人编译好的软件包。rpm即Redhat Package Manager,Redhat的软件包管理方式,适用rpm install 命令。rpm不仅已经

把软件源代码编译成二进制文件,而且还对软件包依赖的软件,系统环境等做了统计。文件扩展名:rpm ,还有一种SRPM:没有

编译成二进制文件,但是也包含rpm的特性 ,用rpm方式安装软件,如果依赖的软件没有事先安装,软件无法安装成功。

具体安装步骤:

 a、找到相应的软件包,比如***.version.rpm,下载到本机某个目录; 

b、打开一个终端,su -成root用户; 

c、cd ***.version.rpm所在的目录; 

d、输入rpm -ivh ***.version.rpm

(3)yum安装

安装前可以先用 yum list package 查看是否已安装,如果未安装可以使用 yum search package 搜索yum仓库中有关这个

软件的信息。

具体安装步骤:
a、yum install package  #安装指定的安装包package,如果有依赖软件会一并安装
b、yum源升级
c、yum update  #全部更新
d、yum update package  #更新指定程序包package


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值