zoukankan      html  css  js  c++  java
  • 编辑器,编译器,文件,IDE与其他的关系,g++,c++的区别

    一、

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

    编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 → 预处理器 → 编译器 → 目标代码 → 链接器 → 可执行程序。
    而编辑器是软体程序,一般是指用来修改电脑档案的编写软件。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。
    编译器是把源代码编译成二进制字节码的程序,编辑器是让我们编写源代码更方便快捷的工具。编译器一般指的是.exe,编辑器指的是Visual Studio、Dev C++等。

    2、好用的编辑器:

    Visual Studio、Dev C++

    二、

    1、源代码文件:

    源代码文件包含程序员使用的任何编程语言编写的代码。

    源代码文件:是指中文名程序编辑别称算法语言计算机所能识别的语言性质源代码文件,是指将完成一件工作所需要的步骤,也就是算法,用计算机所能识别的语言,按照一定的程序结构翻译出来,并可被计算机执行的编写代码的全过程.该程序编辑形式(能通过编译、链接生成最终程序(一般是可执行文件)的源代码文件。

    2、可执行文件:

    可执行文件包含组成可执行程序的完整机器语言代码。指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。在windows操作系统下,可执行程序可以是 .exe文件 .sys文件 .com类型文件。

    3、xxx.sln:

    .sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息

    4、项目文件:

    创建应用程序所需的引用、数据连接、文件夹和文件的信息。

    5、文本文件:

    文本文件是一种由若干行字符构成的计算机文件。文本文件存在于计算机文件系统中。通常,通过在文本文件最后一行后放置文件结束标志来指明文件的结束。文本文件是指一种容器,而纯文本是指一种内容。文本文件可以包含纯文本。一般来说,计算机文件可以分为两类:文本文件和二进制文件。

    三、

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

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

    2、常用的IDE:

    微软 Visual Studio(VS)、Dev C++、PyCharm、

    四、在Visual Studio中,按一下ctrl+F5就可以“直接运行”.c或.cpp文件时:

    1、

    原理:启动源文件,将代码转化成计算机能懂的语言,然后进行编译

    2、

    步骤:清除缓存,强制刷新,执行了g++、gcc这两个命令

    五、g++、gcc这两个命令的区别:

    1、gcc只能编译c代码,g++只能编译c++代码

    两者都可以,但是请注意:
    (1)后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。
    (2)编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。

    2、gcc不会定义__cplusplus宏,而g++会

    实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。

    3、编译只能用gcc,链接只能用g++

    严格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。

  • 相关阅读:
    AngularJS之开发组件的一些思路
    [译]React Context
    前端好玩技术中转站
    《JavaScript高级程序设计》笔记整理
    React-Router学习整理
    AngularJS中的模板安全与作用域绑定
    React问题总结与归纳
    AngularJS中的按需加载ocLazyLoad
    AngularJS+Node的RESTful之基本实现
    AngularJS中的指令
  • 原文地址:https://www.cnblogs.com/123123-/p/12782530.html
Copyright © 2011-2022 走看看