编辑器、编译器、文件、IDE等常见概念辨析
一、编辑器与编译器有什么区别?有什么好用的编辑器?
以下内容转自此网站
1.编辑器介绍
编辑器是软体程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。
2.编译器介绍:
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
3.编译器跟编辑器的区别
编译器是把java源代码编译成二进制字节码的程序,编辑器是让我们编写java源代码更方便快捷的工具。Java中的编译器一般指的是javac.exe,编辑器指的是Eclipse、Idea、NetBeans等。
同理.net中的编译器是csc.exe,编辑器是Visual Studio。C语言中的编译器是cl.exe或者gcc.exe,编辑器是Visual Studio、Dev C++等。
4.好用的编辑器
NodePad++
Notepad++是一款免费但优秀的代码编辑器,运行在Windows环境下,可以支持多种编程语言。它在50多种程序、脚本和标记语言上都有着语法高亮、代码折叠等功能。用户可以人为设置当前语言,它还支持实现一些编程语言的API。
Vim
Vim是从vi发展出来的一个文本编辑器,在程序员中被广泛使用。它支持语法高亮、显示行号,这都是对程序员重要的辅助功能。用户还可以更换界面的主题颜色,减缓长期编程的疲劳感,让代码更加清晰。它可以自动检查你的拼写错误,提高你的工作效率,对于开发者是一个非常好的选择。
GNU Emacs
Emacs是一个轻便、可扩展、免费的编辑器,它比其它的编辑器要更强大,是一个整合环境,或可称它为集成开发环境。它可以处理文字,图像,高亮语法,将代码更直观地展现给开发者。Emacs可以运行在大多数的操作系统上,而且它支持大多数常用的编程语言,可以自动对代码排版布局。Emacs用户可以根据自身的需要和偏好对编辑器进行定制
等等
二、源代码文件、可执行文件、“xxx.sln”、项目文件、文本文件。
1.源代码文件
源程序文件是是指未经编译的,按照一定的程序设计语言规范百书写的,人类可读的文本文件。通常由高级语言编写。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可度执行的程序。
2.可执行文件
可执行文件 (executable file) 指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。在windows操作系统下,可执行程序可以是 .exe文件 .sys文件 .com等类型文件。
3.“xxx.sln”
在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。包含了较为通用的信息,包括解决方案所包含项目的列表,解决方案内任何项的位置以及解决方案的生成配置.此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合。
4.项目文件
创建应用程序所需的引用、数据连接、文件夹和文件的信息。
5.文本文件
文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。文本文件是指以ASCII码方式(也称文本方式)存储的文件,更确切地说,英文、数字等字符存储的是ASCII码,而汉字存储的是机内码。文本文件中除了存储文件有效字符信息(包括能用ASCII码字符表示的回车、换行等信息)外,不能存储其他任何信息。
三、IDE与编辑器、编译器、调试器等有什么关系?举几个你常用的IDE。
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。
常用IDE有:Visual Studio 2019,Dev C++等
四、在Visual Studio中,按一下ctrl+F5就可以“直接运行”.c或.cpp文件。原理是什么?中间经历了了什么步骤?实际上执行了什么命令?使用了g++、gcc这两个命令吗?
1.ctrl+F5是强行刷新命令。
2.经历了清除缓存,重新加载。
3.执行命令:g++、gcc
4.使用了g++、gcc这两个命令
五、g++、gcc这两个命令有啥区别?
1.g++和gcc都可以编译C代码。后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。
2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了
3.编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++.因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。
以上信息均摘自清清飞扬的博客,此博客讲的非常详细