编译器、编辑器、IDE等概念

时间:2024-03-08 22:28:18

一、编辑器和编译器

编辑器:一般是指用来修改电脑档案的编写软件,常见的编辑器有文本编辑器、网页编辑器、源程序编程器、图像编辑器、声音编辑器、视频编辑器等。这里主要讲源码编辑器。它可以用来编写代码,查看源文件和文档等。

常见的编辑器:NodePad++、Sublime Test、Vim。

编译器:编译器所作的就是将机器语言、编译语言和高级语言进行相互转换。大多数情况下,编译时从更高级的语言(高级语言、汇编语言)编译成低级语言(汇编语言、机器语言)。另一种情况是,从他人的可执行程序(低级语言)编译成高级语言,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。这个过程叫做反向编译。

常见编译器:gcc编译器。

参考:https://blog.csdn.net/oliowa/article/details/70207573

二、

1.1)源代码文件:存放程序代码的文件,即编辑的代码,称为源代码文件。C语言源程序文件的扩展名为".c"。源代码文件是相对目标文件和可执行文件而言的,是用高级语言写出来的。

1.2)目标文件:源代码经过编译所得到的二进制代码,成为目标文件。目标文件的拓展名为".obj"(Windows)或".o"(Linux)。目标文件已经是机器指令,但还不能运行,因为目标文件还没有解决函数调用的问题。

1.3)可执行文件:链接器将目标代码、库代码和系统标准启动代码结合在一起,形成完整的可在操作系统下独立执行的文件,称为可执行文件。扩展名为".exe"(Windows)。

参考:http://www.360doc.com/content/19/0529/18/49586_839026023.shtml

2.1).sln:在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合。通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。比如是生成Debug模式,还是Release模式,是通用CPU还是专用的等.

ps:就是打开文件的索引,正确引导你进入环境,进入工程!

2.2)项目文件:解决方案文件中包含若干个项目文件,每个项目单独一个文件道夹,里面包含了这个项目的全部文件,项目文件夹所在位置的Dubug/Release,存放的是日志文件。

2.3)文本文件:这类文件以文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。

(文本文件和二进制文件辨析:https://www.cnblogs.com/pengwangguoyh/articles/3223072.html)

三、IDE、编辑器、编译器和调试器

调试器:1.控制软件运行调试器的最基本功能就是将一个飞速运行的程序中断下来,并且使其按照用户的意愿执行。调试器是靠迫使目标程序触发一个精心构造的异常来完成这些工作的。2.查看软件运行中信息查看软件的当前信息,这些信息包含但不限于当前线程的寄存器信息,堆栈信息、内存信息、当前EIP附近的反汇编信息等。3.修改软件执行流程修改内存信息、反汇编信息、堆栈信息、寄存器信息等等。

IDE:集成开发环境IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。(源自:百度百科)

关系总结:编辑器用来查看或编写代码。编译器进行几种语言的转换,一般是将高级语言转换成机器可执行的机器语言。IDE是便捷的程序开发环境,集成了代码编辑器、编译器调试器和图形用户界面等工具。而调试器则能暂停程序的运行,以方便查看程序的运行的状态和信息。

个人常用IDE:Visual Studio、Dev C++

四、VS中Ctrl+F5

1)Ctrl+F5:开始执行(不调试),启动目标文件,但不附加调试器。一般会单独出现一个运行结果界面。调试时Debug会重新生成,并检查错误,没错的话再运行;而非调试下直接运行会跳过Debug过程;

2)运行步骤(gcc):预处理器、编译器、汇编器、链接器。执行这四个阶段的程序一起构成了一个编译系统。

3)Ctrl+F5是直接运行生成的程序,不进行重新编绎。

4)使用了g++和gcc。

五、g++与gcc。

1)gcc 和 GCC 是两个不同的东西

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

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

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

3)区别:

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

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

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

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

https://www.cnblogs.com/oxspirt/p/6847438.html)

#使用命令行对源代码文件进行编译

此处运行环境是在Windos下,运行cmd命令进入DOS界面

第一步:在DOS界面进入.cpp文件所在目录

第二步:用g++ 加上文件名,注意要加上文件扩展名,这样会生成一个a.exe的可执行文件(Windows默认生成a.exe,Linux默认生成a.out)

因为这里是C++源代码,所以要用g++命令,如果是C语言的源代码,则既可使用g++,也可以使用gcc(或者cc)命令。

第三步:直接输入a.exe并回车, 即可执行由demo.cpp编译链接生成的程序(Linux环境下,则改成 ./a.out 运行程序)

第四步:此时,输入运行所需参数,敲击回车之后即可出结果

第五步:使用Ctrl+z终止程序

(参考:https://www.cnblogs.com/-beyond/p/6636485.html)