编辑器、编译器、文件、IDE等常见概念辨析

一。编辑器、编译器、文件、IDE等常见概念辨析(初步学习,若有错误请指出)

1. 编辑器与编译器的区别,及好用的编辑器(文字转自百度)

1. 编辑器与编译器的区别:

  1. 编译器:编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译(compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

  2. 编辑器:编辑器是软体程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。

  3. 区别:编译器是完成对语言之间的翻译的程序,而编辑器是完成对语言的编写的程序

2. 好用的编辑器(文字转自链接:https://www.jianshu.com/p/80b6c05dfe0f)

  1. Notepad++:Notepad++是一款免费又优秀的文本编辑器,支持在 MS Windows 环境下运行的多种编程语言。Notepad++支持超过 50 种编程、脚本和标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档。用户也可以手动设置当前语言,覆盖默认语言。该程序还支持自动完成某些编程语言的 API 子集。(官方网站:http://notepad-plus-plus.org/)

  2. ATOM:Atom 是一款由 GitHub 开发的,支持用 Node.js 编写插件和嵌入 Git Contral,面向 Mac OS X、GNU/ Linux 和 Windows 的免费的开源文本和源代码编辑器。它预装了所有你期望一个现代化的文本编辑器所应该具备的一切功能。而且,ATOM 还配备了标签式界面、多窗格布局、简单的文件浏览器、易于学习的曲线图表,以便于你可以快速上手(官方网站:https://atom.io/)

  3. VIM: VIM 是一个可高度自由配置的文本编辑器。它是 vi 编辑器的改进版,同时也是免费软件。该应有程序的建立是为了处理代码以及其他很多事情,而不只是为了写电子邮件和打开配置文件。它允许你编辑文本并保存简单的文本文件,但它的主要功能是还是编辑代码。它支持语法高亮显示和行编号,这是写程序必备的两个基本功能。用户也可以改变界面颜色以便增加代码的可视性。

对于文本编辑,VIM 这个程序囊括了多种语言的拼写检查器,并有建议如何更正拼写错误的能力。甚至是当你正在编写代码的时候,它也能派上用场,因为该应用程序只检查不被识别为代码的文本。当然你也可以快速地从这个错误跳到下一个以便更好地校对文本。(官方网站:http://www.vim.org/)

2. 源代码文件、可执行文件、“xxx.sln”、项目文件、文本文件

  1. 源代码文件:存放程序代码的文原理件,即我们编辑代码的文件,如C语言的源代码文件:.c ,C++的源文件.cpp,C#语言:.cs

  2. 可执行文件:可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。在windows操作系统下,可执行程序可以是 .exe文件 .sys文件 .com等类型文件

  3. "xxx.sln":在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。包含了较为通用的信息,包括解决方案所包含项目的列表,解决方案内任何项的位置以及解决方案的生成配置。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合(转于https://www.cnblogs.com/fangqing1986/archive/2008/04/06/1139125.html)

  4. 项目文件:一个解决方案会有一个大文件夹,里面有一个解决方案文件(.sln),还可以包含若干个项目,每个项目单独一个文件夹,里面包含了这个项目的全部文件,项目文件夹所在位置的Dubug/Release,存放的专是日志文件。不管在同一个解决方案下有多少个项目,所有的项目生成的exe文件都在解决方案目录下的Debug/Release下。

  5. 文本文件:文本文件格式是一种由若干行字符构成的计算机文件。文本文件存在于计算机文件系统中。通常,通过在文本文件最后一行后放置文件结束标志来指明文件的结束。 文本文件是指一种容器,而纯文本是指一种内容。文本文件可以包含纯文本。 一般来说,计算机文件可以分为两类:文本文件和二进制文件 。纯文本文件的拓展名为.txt,还有一些其他文本文件的拓展名如.wps,.doc,.docx

3. IDE与编辑器、编译器、调试器的关系。常用的IDE

1. IDE与编辑器、编译器、调试器等的关系

  1. 集成开发环境 = 编辑器 + 调试器 + 编译器 + 图形用户界面

    IDE(Integrated Development Environment) = Editor + Debugger + Compiler + GUI(Graphical User Interface)

2.常用的IDE

  1. 微软 Visual Studio(VS)

4.Visual Studio中,ctrl+F5

  1. 原理:将源代码文件转为可执行文件,执行可执行文件

  2. 步骤:

    我觉得是先启动生成项目文件,在配置环境下,将源代码文件通过工程的配属文件转为可执行文件,在该过程中经过(1.编译预处理2.编译阶段3.优化阶段4.汇编过程5.链接程序),执行该可执行文件;若可执行文件已存在,则直接执行该文件

  1. 执行命令:g++/gcc

  2. 是否使用g++和gcc命令:是,为了将源文件转为可执行文件

5.g++和gcc的区别(转自Linux公社)

  1. 什么是gcc / g++

  2. 首先说明:gcc 和 GCC 是两个不同的东西

    GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。

    gcc是GCC中的GUN C Compiler(C 编译器)

    g++是GCC中的GUN C++ Compiler(C++编译器)

    一个有趣的事实就是,就本质而言,gcc和g++并不是编译器,也不是编译器的集合,它们只是一种驱动器,根据参数中要编译的文件的类型,调用对应的GUN编译器而已,比如,用gcc编译一个c文件的话,会有以下几个步骤:

    Step1:Call a preprocessor, like cpp.

    Step2:Call an actual compiler, like cc or cc1.

    Step3:Call an assembler, like as.

    Step4:Call a linker, like ld

    由于编译器是可以更换的,所以gcc不仅仅可以编译C文件

    所以,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler

  3. gcc和g++的主要区别

    1. 对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的)

    2. 对于 .c和.cpp文件,g++则统一当做cpp文件编译使用g++

    3. 编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL

    4. gcc在编译C文件时,可使用的预定义宏是比较少的

    5. gcc在编译cpp文件时/g++在编译c文件和cpp文件时(这时候gcc和g++调用的都是cpp文件的编译器),会加入一些额外的宏,这些宏如下:

      #define GXX_WEAK 1
      #define __cplusplus 1
      #define __DEPRECATED 1
      #define GNUG 4
      #define __EXCEPTIONS 1
      #define private_extern extern

    6. 在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价,它们的区别不仅仅是这个

      主要参数

      -g - turn on debugging (so GDB gives morefriendly output)

      -Wall - turns on most warnings

      -O or -O2 - turn on optimizations

      -o - name of the output file

      -c - output an object file (.o)

      -I - specify an includedirectory

      -L - specify a libdirectory

      -l - link with librarylib.a

      使用示例:g++ -ohelloworld -I/homes/me/randomplace/include helloworld.C

    7. 尝试使用命令行编译

posted @ 2020-04-25 10:46  rghli(林洁颖)  阅读(665)  评论(2编辑  收藏  举报