查看: 134|回复: 2

C/C++编译器、IDE、编辑器系统介绍

[复制链接]

3

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-9-20 20:58:19 | 显示全部楼层 |阅读模式
1. 引言

很多人做了很多年的C/C++开发,却依然分不清C/C++编译器的一些概念,今天就在这篇文章中好好的说一下。编译器、编译环境、编辑器、IDE(集成开发环境)这个几个概念有交叉但差异很大。

  • 编译器:按照某种规范将C/C++代码转换成可执行程序的程序。
  • 编译环境:说白了就是操作系统。编译器也是程序,需要运行在特定的操作系统上。
  • 编辑器:编写代码的程序,Linux常见的有Vim、VScode, Windows常见的有Visual Studio、Notepad++、UltraEditor、记事本等。
  • IDE(集成开发环境):是指包括了项目文件管理器、代码编辑器、调试器、编译器等各种开发时候需要的工具集合,通常是打包一起安装的。
2. 编译器

C++编译器有很多种,由于C/C++是操作系统底层开发工具,所以和操作系统普及和流行程度密切相关,目前最常见的有下面几种:
2.1. MSVC

MSVC是Windows平台上最常见的编译器,Visual Studio自带C/C++编译器和运行库,只要安装好Visual Studio,就可以直接用这个编译器编译了。另外补充一下VS部分组件的名称,如下:

  • cl.exe:vs编译器
  • link.exe:vs链接器
  • lib.exe:加载lib库的程序
  • nmake.exe:用makefile进行构建、编译的工具
它们一般在安装VS的目录中可以搜索到,我电脑上的安装路径为(我装的VS2015):
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
2.2. GCC/G++

gcc and g++分别是GNU的c & c++编译器,主要用于LINUX平台。

  • ⒈预处理,生成.i的文件[预处理器cpp]。
  • ⒉将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]。
  • ⒊由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]。
  • ⒋连接目标代码,生成可执行程序[链接器ld]。
然而在在Windows下,其实我们也经常看到GCC/G++的编译器,只不过由于名称的关系,我们没有认出来而已。GCC编译器在Windows下比较流行的移植版主要有MinGW、Cygwin和Djgpp三个,三者各有特色,针对不同的应用场合,可以选择不同的移植版来满足需要。这3个的区别是:

  • 1.MinGW这个系列的移植主要方向是让GCC的Windows移植版能使用Win32API来编程
  • 2.而Cygwin的目标则是能让Unix-like下的程序代码在Windows下直接被编译
  • 3.至于Djgpp则是想让DOS下也能用上GCC
2.3. Clang

Clang是一个C语言、C++、Objective-C语言的轻量级编译器,主要用于Mac OS X平台的开发。它是一个由Apple公司主导、用C++实现的编译器,它与GNUC语言规范几乎完全兼容,并在此基础上增加了额外的语法特性。目前Clang由于特性先进,也越来越流行,但是相对来说还是GCC 更流行。Clang不只用于Mac,在各个操作系统都有对应的编译器。
2.4.其它编译器

例如:

  • ICC(Intel C/C++ Compiler)
  • BCC(Borland C/C++ Compiler)
  • RVCT(ARM的汇编/C/C++编译器)
这些编译器用的比较少,有的已经快消失了。
3. 代码编辑器

3.1 Windows编辑器





另外还有一些文本编辑器也可以用来写代码,比如Notepad++和UEStudio:




3.2 Linux编辑器

Linux下比较推荐visual studio code和Qt Creator,另外也看到有人说:Code::Blocks、Netbeans等,这些我没用过,就不细说了,有兴趣的可以去玩一玩。 当然还有VIM,VIM需要配合其他工具一起使用,编辑单个代码文件是没有问题的,但是它自身不具备项目工程管理的能力。
3.2.1 visual studio code

Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器,可在桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态系统。


3.2.2 vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个


4. IDE(集成开发环境)

前面其实已经说过了,这里就不展开了,概括一下就是Windows平台一般用Visual studio,Qt Creator,Linux下一般用Visual Studio Code、Qt Creator、VIM。
<hr/>END

今天的分享到此结束了,如果在编程学习的路上遇到问题,不妨来我的编程学习交流基地一起来学习探讨
回复

使用道具 举报

1

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2025-2-15 22:28:02 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
回复

使用道具 举报

1

主题

11

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 6 天前 | 显示全部楼层
传说中的沙发???哇卡卡
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表