linux集成开发环境IDE

集成开发环境(IDE)包括:

1.编辑器

2.编译器:将源代码编译为机器可识别的低级语言

  • 源代码:在编辑器写的代码
  • 预处理:头文件替换,宏展开,去掉注释,条件编译,其他预处理指令
  • 编译:源代码转换为汇编代码
  • 汇编:汇编代码转换成二进制文件
  • 目标代码:由编译器或汇编器处理源代码生成的代码
  • 链接:把所有的二进制文件和依赖的库合并到一起得到可执行程序
  • 可执行程序:在操作系统存储空间中浮动定位的二进制可执行程序,加载到内存由操作系统加载并执行。

3.调试器

break/b:打断点
run/r:开始执行
continue/c:继续执行
print/p:打印变量
next/n:单步运行,逐过程
step/s:单步运行,逐语句
backstrace/bt:打印调用栈
frame/f 切换到某个栈帧
gdb调试 coredump文件,可以看到程序崩溃发生了什么事

但是如果想要调试的话,在编译的时候要加上-g选项
因为gcc -g 指令是调试运行指令,不加的话只能运行代码,不能调试。加上-g选项以后,gcc在编译是会做以下额外的操作:

  1. 创建符号表,符号表包含了程序中使用的变量名称的列表。

  2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

readelf命令:一般用于查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件,动态库(.so)或者静态库(.a) 等包含ELF格式的文件。

4.工程管理工具:makefile

Java开发工具

Eclipse:JAVA里的IDE,但是用户很少,可以开发C++

IDEA:是最主流的 Java 开发环境

=======JB全家桶. ======

PyCharm(Python)

CLion (C++)

PHP (PHPStom)

JavaScript (WebStorm)

Go (GoLand)

===================

linux下常用的编辑器:

一、vim 有十二种模式,常用的有三种,一般模式,插入模式,底行模式

  • 支持非常丰富的快捷键(操作效率非常高,学习成本比较高)

  • 支持非常强大的扩展能力…(高度可配置)背后依赖着 VimL 编程语言

  • vim 是一个高级文本编辑器,最强大的文本编辑器之一,主要特点是:自动命令,digraph 输入,拆分屏幕,会话屏幕,标签扩展,语法着色和标记系统,他是用 C 和 Vim scrpit 编写的。

2000年–

Emace 仅次于 vim (用户量很少),也有着非常丰富的快捷键和扩展能力,背后依赖着 Lisp 编程语言(函数编程)

2000之后

notepad++/notepadplus/utral edit/source insight 也比不了vim

2010年后 Sublime 和 vim 旗鼓相当

Sublime Text 为code, markup,prose构建

  • 主要特点是命令面板,基于python的插件API,同时编辑,项目特定的首先项

  • 界面好看,支持 vim 风格的快捷键,但是收费,用户也很少,

Atom 由Github 开发的免费开源文本编辑器

  • 基于Electron ,它是一个使用 web 技术构建的桌面应用程序,主要特点是:跨平台编辑,内置包管理器,文件浏览器,多个窗格支持,查找和替换功能,以及智能自动完成
  • 界面好看,支持 vim 风格快捷键,安装插件非常方便
  • 缺点是:启动速度特别慢

VSCode (MS)当今发展非常迅猛,当今Github 排名第三

  • 界面长大好看,支持 vim 快捷键,支持扩展,启动速度快,可以和vim叫板,但是不能取代 vim ,因为依赖于图形界面;

Neovim 真正有望取代 vim 的软件

以下的这些都是在发展过程中的编辑器,但是都凉的差不多了
二、Geany 是一个伟大文本编辑器

  • 功能丰富,集成了GTK+工具包,以提供一个优秀的开发环境,几乎支持所有的编程语言,显著特征是可插入接口,语法高亮显示,行号,

三、JED 使用S-Lang库

  • 这个跨平台的工具也适用于各种其他平台,包括Unix ,VMS,OS/2,BeOS,Windows,OpenVms等。主要优点是:轻量级,可以轻松地在有限资源的硬件上使用它。

四、Brackets 为web设计人员和前端开发人员设计的

  • 轻量级的编辑器,用HTML,CSS,JavaScript编写的

五、KWrite 是KDE开发的轻量级文本编辑器

  • 主要功能包括word完成,自动缩进,语法,根据文件类型、vi输入模式和支持插件,可扩展性,编码支持,远程文件编辑,用C++写的。

六、nano 在unix操作系统比较广泛

  • 模仿了Pico文本编辑器,并附带了额外功能,主要特点是:autoconf支持,区分大小写,搜索功能,自动缩进,交互式搜索和替换,tab补全,软文本包装,是用C语言编写的.

七、GNU Emacs 由Lisp和C语言编写的

  • 由GNU项目创始人Richard Stallman 创建,这个存世已经很长时间了,

八、Gedit 以C语言编写,2000年发行

  • 在Gedit可以为各种编程语言提供可配置的语法高亮显示!

linux下常用的编译器

一、gcc:(GNU Compiler Collection)

  • 起初是GNU推出的C语言编译器,用于linux系统编程,支持众多的语言的编译器,包括 C,C++,Ada,Object C,Java。gcc需要通过后缀名来区分文件类型
    linux集成开发环境IDE_第1张图片
    源代码(.c) -【预处理】→ 预处理文件(.i) -【编译】→ 汇编源代码(.s) -【汇编】→ 动态加载函数库文件(.o) -【链接】→ 二进可执行文件(通常无后缀)

1、gcc 调用 cpp 对源代码进行预处理,主要完成对源代码文件中包含(include)的头文件、预编译语句(如宏定义define等)的处理,例如对函数内部用到的宏变量进行替换等等。
2、gcc 调用 cc1 编译预处理文件,将预处理文件内的 C 语言翻译成汇编代码,然后将翻译过来的汇编源代码保存在以“.s”为后缀的文件中。
3、gcc 调用 as 对汇编源代码进行汇编处理,生成以“.o”为后缀的动态加载函数库文件。
4、gcc 调用 ld 完成对一个或多个动态加载函数库文件的链接工作,创建一个可执行文件,将所有的动态加载函数安排到可执行程序的恰当位置。

二、linux 下常用的编译器还有:EGCC、PGCC:

另外在其它平台的编译器:
(1)MSVC 是 Windows 平台上最常用的编译器
(2)Clang
Hackerearth 在线编译器,Codechef 支持C,C++和java
https://blog.csdn.net/tushenfengle/article/details/82561045

你可能感兴趣的:(操作系统)