您的位置:首页 > 编程语言 > C语言/C++

VSCode配置C/C++环境总结

2019-05-09 21:48 901 查看

网上有很多vscode配置C++的教程,在这里写下我的问题和总结

问题:

安装了VScode为什么还不能运行C++程序?

visual studio code 是一款跨平台源代码编辑器。它是编辑器不是编译器,打开cpp文件只是进行文本编辑,不能编译运行。

安装了VSCode中的C/C++插件,为什么还不能运行C++程序?

VSCode中的C/C++插件只是帮助我们写代码(高亮、提示、自动补全等),并不能编译。所以要运行C++程序,需要再安装编译器。而gcc是一个好的选择。

gcc是什么?

gcc是一组编译器套件(一个大佬说,gcc支持的多,应用的广,而且免费)。如何理解gcc?这要从操作系统的历史讲起。

1969年,Ken Thompson用汇编语言写出了Unix的原型Unics。当时计算机的架构都不太相同,所以每次安装到不同的机器上都得要重新编写汇编语言,很不方便。后来Thompson与Ritchie合作想将Unics改以高级程序语言来编写,当时现成的高级程序语言有B语言。但是B语言所编译出来的内核性能不是很好,后来Dennis Ritchie将B语言重新改写成了C语言,再以C语言重新改写并编译了Unics的内核。最后,1973年命名并发布了Unix的正式版本。由于是用高级的C语言写的,与硬件的相关性没那么大,所以Unix很容易被移植到不同的机器上面。

Unix的第一篇文章 “The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM发表。这是UNIX与外界的首次接触。结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix第五版就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行。

1978年,对 Unix而言是革命性的一年;因为学术界的老大柏克利大学,推出了一份以第六版为基础,加上一些改进和新功能而成的 Unix。这就是著名的“1 BSD(1st Berkeley Software Distribution)”,开创了Unix的另一个分支:BSD 系列。 同时期,AT&T成立USG,将 Unix变成商业化的产品。从此,BSD的 Unix 便和AT&T 的Unix 分庭抗礼,Unix就分为System IV和4。x BSD这两大主流,各自蓬勃发展。

1979年,因为商业的考虑,AT&T收回Unix的版权。AT&T在1979年发行的第七版Unix中,特别提到“不可对学生提供源代码”的严格限制。同时造成Unix业界之间的紧张气氛,并且也引发了很多商业纠纷。

1983年,Richard Stallman 发起 GNU 计划,这个计划的目的是:创建一个自由、开放的Unix操作系统。GNU是“GNU’s Not UNIX”的递归缩写。但是建立一个操作系统谈何容易。于是 Stallman 想:“既然操作系统太复杂,那我就先写可以在Unix上运行的软件。”后来一堆人知道了免费的GNU软件,并且实际使用后发现和原有的专利软件也差不多,于是便转而使用GNU软件,于是GNU计划逐渐打开了知名度。

并且为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都包含一份在禁止其他人添加任何限制的情况下,授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。

虽然GNU计划逐渐打开了知名度,但是能见度还是不够。Stallman想:无论是什么软件,都得要进行编译成为二进制文件后才能执行,如果能写出一个不错的编译器,那不就是大家需要的软件了吗?因此他便开始编写C语言的编译器,那就是现在也相当有名的GCC(GNU C Compiler)。后来又扩充了了其他语言的编译器,组成了 GCC(GNU编译器套件 GNU Compiler Collection),包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。这就是我们要用的gcc啦。

1978年6月8日,Intel发布了新款16位微处理器“8086”,也同时开创了一个新时代:x86架构诞生了。x86指的是特定微处理器执行的一些计算机语言指令集,定义了芯片的基本使用规则。

1985年美国微软公司发布Microsoft Windows操作系统。

简言之,gcc是类Unix系统上的编译器,要想在windows上使用gcc,需要一些工具,例如MinGW。

什么是MinGW ?

MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows 程序。实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。

简言之,MinGW包含gcc编译器,所以我们需要使用它。

总结

VS2017太大,写个小算法也要创建项目。所以想用个轻量级的工具。听说vscode挺好用的,只是想使用vscode写写代码,但是安装了才发现要装其他东西,而又不懂为什么要装,也不知道是啥玩意。几乎花了一整天的时间了解这些东西。不懂的还很多,加油吧。

最终安装过程:

  • VSCode
  • VSCode中的插件:Chinese,C/C++,Code Runner,Include Autocomplete
  • MinGW64(包括环境变量)

参考:

  • CSDN众多大佬的博客(太多了)
  • 鸟哥的Linux私房菜(前面讲Linux历史的部分)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: