[关闭]
@azmddy 2018-06-12T14:54:56.000000Z 字数 4220 阅读 385

VSCode 的第一个C++程序(windows)

VSCode


引言

VSCode作为微软推出的一款免费的轻量级的集成开发环境,可谓是良心之作。它拥有VS的高颜值,而且像瑞士军刀一样,拥有丰富的插件,c/c++、java、python、js、html等等,它都能轻松驾驭。

目录

安装

VSCode的安装

VSCode的安装并没有什么特别之处,按照安装引导进行即可。
这里提供VSCode的下载地址:https://code.visualstudio.com/Download

MinGW的安装

在VSCode的C/C++扩展中并不包含C++编译器或调试器,所以我们需要自己安装这些工具。流行的C++编译器是Windows的MinGW,MacOS的XCode的Clang和Linux上的GCC。

MinGW的下载

MinGW的下载地址:
https://sourceforge.net/projects/mingw/files/latest/download?source=files

MinGW的安装也没有什么特别之处,唯一要注意的地方就是,记住你的安装路径,这很重要。

安装完成之后,打开软件,选择我们需要的包下载。具体看下面的图片:
image_1cfiv25ks18msnk59vk1v6o1hr9.png-37.6kB

image_1cfiv3eqv1j1u1mhivvori1uv3m.png-42.8kB

选择好了之后,点击 Installation->Apply Chagnes,在新的窗口中点击Apply
注意:下载过程中可能会失败,失败了就再次点击Apply重新下载,还出现失败,就翻墙吧!
image_1cfivamlj1a9612501qdm171o1c2r13.png-39.2kB

下载完成后,就需要添加系统环境变量了。
我MinGW的安装目录在F盘。
image_1cfivl7fog681ela2ac1ug2geo1g.png-50kB

F:\MinGW\bin路径添加到环境变量中。
image_1cfivn8741gted88tdk1mfe7oj1t.png-36.2kB

然后重启你的电脑,在cmd中或者Windows PowerShell 中输入gcc -v验证一下。下图是成功的范例。
image_1cfivuv9111m187o1utn19aoo8f2a.png-32.4kB

Get Started

打开VSCode,我们可以看到它的欢迎界面。

image_1cfj4ohgh10147pe7851nlp15v62n.png-113.6kB

安装插件

在VSCode编写和调试程序是需要安装相关的插件才能进行的。
在这里我们选择安装C/C++C++ IntellisenseCode RunnerInclude Autocomplete这四插件。
我们点击扩展的图标,在搜索栏里搜索插件的名称。

image_1cfj515h6p531k60154sn41fmq34.png-164.6kB

点击安装,在安装完成之后,点击重新加载,这个插件就会生效。

image_1cfj533841n1q1jcm1nbncgug203h.png-168kB

其它的插件的安装也是如此。

helloworld

新建一个helloword文件夹,作为我们此次的工作区。在资源管理器中打开这个文件夹。
打开这个文件夹后,会发现文件夹没有源文件。这时我们需要新建一个helloworld.cpp源文件。

image_1cfj5gb7p1ekd1jkr18ip15s367k3u.png-103.9kB

这时我们可以编写helloworld程序了。

image_1cfj5m1131pmv138nab51l5412284b.png-55kB

配置智能感知

由于文件夹的配置信息不完整,我们需要自己添加缺少的配置信息。通过快捷方式Ctrl+Shift+P运行C/CPP: Edit configuration ...命令添加缺少的信息并生成c_cpp_properties.json文件。

image_1cfj60kdj167fd621obehhl1pma4o.png-67.8kB

image_1cfj61fbl1026114o1b4qql6pmf55.png-109.7kB

在c_cpp_properties.json文件中找到如下部分(可能与我的不太一样)
因为我们的系统是windows,所以找win32就能快速的浏览到需要配置的区域。
image_1cfj6bhrpuid44p6b4hc9neq5i.png-167kB

更改的最终结果:

image_1cfj6kab71nas1jug1blj10k4n686c.png-113.8kB

"compilerPath": "F:\\MinGW\\bin\\gcc.exe",添加这一条,设置gcc.exe的路径(根据自己实际gcc.exe路径添加)。

直观的效果就是引用头文件出现的绿色波浪线没了。

构建代码

如果你想从VS Code构建你的应用程序,你需要生成一个tasks.json文件;

打开命令面板(Ctrl + Shift + P)。选择Tasks:Configure Tasks ...命令,单击从模板创建tasks.json文件,您将看到任务运行模板列表,选择Others。

image_1cfj77dgvjfo13pc1q698u0onp6p.png-78.3kB

image_1cfj77vfp1l7e1s46vkl1akvcsi76.png-73.7kB

image_1cfj796u31vop881ogem1t1lj78j.png-76.5kB

最终生成tasks.json文件。

image_1cfj7fp0lgds1rqi16dv12v91vj990.png-81.4kB

将文件内容修改如下:

image_1cfj7ovkiila1ar517iu1rsa6qa9d.png-92.6kB

我们将当前页面调整到我们的源程序编辑页面,点击右上角的小三角形,即可运行我们的程序了。到目前为止,helloworld程序就这样顺利运行了。

image_1cfj7u7hkef91m031ud51p60lcs9q.png-92.1kB

程序的输出在终端中显示,如果要在终端向程序输入数据,那么还需要进行一点配置。
在命令面板(Ctrl+Shift+P)搜索用户配置,在用户配置文件中,找到Run Code configuration下的code-runner.runInTerminal的值改为true,更改后的结果在右边。

image_1cfj8bnnt1p1v1bm31ro21dat1p15a7.png-135.4kB

调试代码

为了能够调试,我们还需要生成launch.json文件。

浏览到调试的窗口,去添加配置。选择C++(GDB/LIDB),生成launch.json文件。

image_1cfj8uecs1bpe79q16ou1ond1g7fak.png-74.1kB

image_1cfj8vtth1e9lsoi145gqq71s5tb1.png-42.6kB

image_1cfj92lj21qelfr313mvrq1dabe.png-102.3kB

将launch.json文件内容更改如下:

image_1cfj9hbr114dm1af81o1j1f8l1091br.png-162.3kB

在进行调试(F5)的时候,一定要将当前页面调整到我们的源程序编辑页面。不然会出错。

image_1cfj9nlpe14n013qaf5210881cguc8.png-116.2kB

写在最后

万事开头难,其实也不难,只要掌握了方法,一切都不是问题,在写完helloworld程序之后,再写其他的程序就可以把.vscode直接拿来用,略作修改即可。

附:json文件源码

  1. //tasks.json
  2. {
  3. // See https://go.microsoft.com/fwlink/?LinkId=733558
  4. // for the documentation about the tasks.json format
  5. "version": "2.0.0",
  6. "tasks": [
  7. {
  8. "label": "build", //在launch.json文件中会用到
  9. "type": "shell",
  10. "command": "g++",
  11. "args": [
  12. "-g", "helloworld.cpp"
  13. ],
  14. "group": {
  15. "kind": "build",
  16. "isDefault": true
  17. }
  18. }
  19. ]
  20. }
  1. // launch.json
  2. {
  3. // 使用 IntelliSense 了解相关属性。
  4. // 悬停以查看现有属性的描述。
  5. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  6. "version": "0.2.0",
  7. "configurations": [
  8. {
  9. "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
  10. "type": "cppdbg", // 配置类型,这里只能为cppdbg
  11. "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
  12. "targetArchitecture": "x86", // 生成目标架构,一般为x86x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
  13. "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
  14. "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
  15. "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
  16. "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
  17. "environment": [],
  18. "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
  19. "MIMode": "gdb",
  20. "miDebuggerPath": "F:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
  21. "preLaunchTask": "build", // 调试会话开始前执行的任务,与tasks.json中的label的值一样
  22. "setupCommands": [
  23. {
  24. "description": "Enable pretty-printing for gdb",
  25. "text": "-enable-pretty-printing",
  26. "ignoreFailures": true
  27. }
  28. ]
  29. }
  30. ]
  31. }
  1. //c_cpp_properties.json
  2. {
  3. "configurations": [
  4. {
  5. "name": "Mac",
  6. "includePath": [
  7. "/usr/include",
  8. "/usr/local/include",
  9. "${workspaceFolder}"
  10. ],
  11. "defines": [],
  12. "intelliSenseMode": "clang-x64",
  13. "browse": {
  14. "path": [
  15. "/usr/include",
  16. "/usr/local/include",
  17. "${workspaceFolder}"
  18. ],
  19. "limitSymbolsToIncludedHeaders": true,
  20. "databaseFilename": ""
  21. },
  22. "macFrameworkPath": [
  23. "/System/Library/Frameworks",
  24. "/Library/Frameworks"
  25. ]
  26. },
  27. {
  28. "name": "Linux",
  29. "includePath": [
  30. "/usr/include",
  31. "/usr/local/include",
  32. "${workspaceFolder}"
  33. ],
  34. "defines": [],
  35. "intelliSenseMode": "clang-x64",
  36. "browse": {
  37. "path": [
  38. "/usr/include",
  39. "/usr/local/include",
  40. "${workspaceFolder}"
  41. ],
  42. "limitSymbolsToIncludedHeaders": true,
  43. "databaseFilename": ""
  44. }
  45. },
  46. {
  47. "name": "Win32",
  48. "includePath": [
  49. "${workspaceFolder}"
  50. ],
  51. "defines": [
  52. "_DEBUG",
  53. "UNICODE",
  54. "_UNICODE"
  55. ],
  56. "compilerPath": "F:\\MinGW\\bin\\gcc.exe",
  57. "intelliSenseMode": "clang-x64",
  58. "browse": {
  59. "path": [
  60. "${workspaceFolder}"
  61. ],
  62. "limitSymbolsToIncludedHeaders": true,
  63. "databaseFilename": ""
  64. },
  65. "cStandard": "c11",
  66. "cppStandard": "c++17"
  67. }
  68. ],
  69. "version": 3
  70. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注