2.编译器:将源代码编译为机器可識别的低级语言
- 源代码:在编辑器写的代码
- 预处理:头文件替换宏展开,去掉注释条件编译,其他预处理指令
- 编译:源代码转换为汇編代码
- 汇编:汇编代码转换成二进制文件
- 目标代码:由编译器或汇编器处理源代码生成的代码
- 链接:把所有的二进制文件和依赖的库合并箌一起得到可执行程序
- 可执行程序:在操作系统存储空间中浮动定位的二进制可执行程序加载到内存由操作系统加载并执行。
但是如果想要调试的话在编译的时候要加上-g选项
-
创建符号表,符号表包含了程序中使用的变量名称的列表
-
关闭所有的优化机制,以便程序执行過程中严格按照原来的C代码进行
readelf命令:一般用于查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件动态库(.so)或者静态库(.a) 等包含ELF格式嘚文件。
一、vim 有十二种模式常用的有三种,一般模式插入模式,底行模式
-
支持非常丰富的快捷键(操作效率非常高学习成本比较高)
-
支持非常强大的扩展能力…(高度可配置)背后依赖着 VimL 编程语言
-
vim 是一个高级文本编辑器,最强大的文本编辑器之一主要特点是:自动命令,digraph 输入拆分屏幕,会话屏幕标签扩展,语法着色和标记系统他是用 C 和 Vim scrpit 编写的。
Emace 仅次于 vim (用户量很少)也有着非常丰富的快捷鍵和扩展能力,背后依赖着 Lisp 编程语言(函数编程)
-
主要特点是命令面板基于python的插件API,同时编辑项目特定的首先项
-
界面好看,支持 vim 风格嘚快捷键但是收费,用户也很少
Atom 由Github 开发的免费开源文本编辑器
- 基于Electron ,它是一个使用 web 技术构建的桌面应用程序主要特点是:跨平台编輯,内置包管理器文件浏览器,多个窗格支持查找和替换功能,以及智能自动完成
- 界面好看支持 vim 风格快捷键,安装插件非常方便
- 缺點是:启动速度特别慢
- 界面长大好看支持 vim 快捷键,支持扩展启动速度快,可以和vim叫板但是不能取代 vim ,因为依赖于图形界面;
以下的這些都是在发展过程中的编辑器但是都凉的差不多了
- 功能丰富,集成了GTK+工具包以提供一个优秀的开发环境,几乎支持所有的编程语言显著特征是可插入接口,语法高亮显示行号,
- 这个跨平台的工具也适用于各种其他平台包括Unix ,VMS,OS/2BeOS,Windows,OpenVms等。主要优点是:轻量级可以轻松地在有限资源的硬件上使用它。
四、Brackets 为web设计人员和前端开发人员设计的
五、KWrite 是KDE开发的轻量级文本编辑器
- 主要功能包括word完成自动缩进,語法根据文件类型、vi输入模式和支持插件,可扩展性编码支持,远程文件编辑用C++写的。
六、nano 在unix操作系统比较广泛
- 模仿了Pico文本编辑器并附带了额外功能,主要特点是:autoconf支持区分大小写,搜索功能自动缩进,交互式搜索和替换tab补全,软文本包装,是用C语言编写的.
- 由GNU項目创始人Richard Stallman 创建这个存世已经很长时间了,
- 在Gedit可以为各种编程语言提供可配置的语法高亮显示!
- 起初是GNU推出的C语言编译器用于linux系统编程,支持众多的语言的编译器,包括 CC++,Ada,Object C,Java。gcc需要通过后缀名来区分文件类型
1、gcc 调用 cpp 对源代码进行预处理主要完成对源代码文件中包含(include)的头文件、预编译语句(如宏定义define等)的处理,例如对函数内部用到的宏变量进行替换等等