vim编辑器
- 一般我们配置vim只配置当前用户的,如果你配置的是root下的,则所有用户使用的都是这个配置。
- 在当前用户的家目录下,新建一个文件,使用 vim ~/.vimrc
- 然后在打开文件进行修改 vim vimrc
gcc编译器
- gcc 文件名 生成可执行程序
除了gcc, 还有哪些常用的编译器(不限制编程语言he'ping)
- EGCS:包括了C/C++/Obj-C/Fortran等编译器
- Clang:licence极度友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,但是Clang依赖于的LLVM,目前的性能无法与GCC相提辩论,缺乏对GCC一些Builtin函数、自身带的汇编器的孱弱,对一些开源软件没有办法编译过去。
- ICC:没有自己专门的前端(传说中的外包),而且是针对Intel体系结构上专门优化。
- IBM XL C++:在IBM特定硬件与平台上表现非常牛逼,Benchmark性能测试非常优秀,但是在编译时间上过长,对C++标准的支持、开源软件的支持、错误信息的提示上都不够友好。
为什么调试的时候需要编译选项中添加 -g?
- 在 Linux 中,我们常用 gcc编译生成可执行文件, 但是可执行程序中没有可供 gdb 调试使用的特殊信息,无法使用 gdb 来跟踪或调试,因此我们需使用到 -g 选项,这样生成的可执行程序就可以使用 gdb 找出出现问题的位置,从而解决问题。
readelf命令
- readelf用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。
yum安装与rpm安装的区别
yum
- yum被称为 Yellow dog Updater, Modified,是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
- yum使用Python语言写成。
- yum客户端基于RPM包进行管理,可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。
- YUM在安装RPM时,会从服务器下载相应包,且缓存在本地。使用YUM进行RPM包的管理,非常简单方便。
rpm
- rpm管理支持事务机制。增强了程序安装卸载的管理。
rpm的功能:
- 打包、安装、查询、升级、卸载、校验、数据库管理。
rpm的缺点:
- 由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。
rpm包
- 用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的
主要区别
- rpm :只能安装已经下载到本地机器上的rpm包,无法解决软件包的依赖关系。
- yum:在线下载并安装rpm包,能更新系统,能自动处理包与包之间的依赖问题。