目录

DES:

Steps

11.配置launch.json

12.tasks.json

13. c_cpp_properties.json

补充:使用第三方库

总结&笔记:

背景知识

ref



DES:

安装配置VS code C++ 编译器,运行helloworld

Steps

1.VS Code

2. 下载安装MinGW-w64

3. 打开vpn连接,启动安装

4.安装完启动,左侧all package,选择

  • mingw32-gcc.bin(c语言文件编译器)
  • mingw32-gcc-g++.bin(c++语言编译器)
  • mingw32-gdb.bin(调试编译后文件)

或者直接选择相应的编译配置,注意看description

5.选择好后选择applychange,等待下载完毕

6.配置环境变量:

右键我的电脑->属性->右边栏高级系统设置

vscode第三方库代码提示python vscode 第三方库_json

环境变量->

vscode第三方库代码提示python vscode 第三方库_编译器_02

 系统变量->path->编辑->

vscode第三方库代码提示python vscode 第三方库_g++_03

 选择MinGW/bin->确定

重启电脑

7.验证

打开cmd 输入g++ -v

有出现版本信息

 则安装成功

8.打开vscode,下载c++插件

9.创建.cpp文件,helloworld

10.按快捷键Ctrl+Shift+P调出命令面板,输入C/C++,选择“Edit Configurations(UI)

vscode第三方库代码提示python vscode 第三方库_vscode_04

vscode第三方库代码提示python vscode 第三方库_c++_05

修改地址

11.配置launch.json

左边栏选择运行和调试->launch.json 

launch.json 是用于运行 ( run ) 和调试 ( debug ) 的配置文件,可以指定语言环境,指定调试类型等等内容。

{  
    "version": "0.2.0",  
    "configurations": [  
        {  
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
            "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
            "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${workspaceFolder}//${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
            "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
            "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
            "environment": [],  
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
            "MIMode": "gdb",  
            "miDebuggerPath": "D:/MinGW/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
            "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
            "setupCommands": [  
                {   
		    "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        }  
    ]  
}

12.tasks.json

tasks.json 是在 vscode 中辅助程序编译的模块,可以代你执行类似于在命令行输入 “gcc hello.c -o hello” 命令的操作,你只要在图形界面下操作即可生成可执行文件。

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",//默认配置,实质为在win的端口使用shell命令
			"label": "g++",//任务的名称,可以修改,但一定要和launch中的"preLaunchTask"项保持一致
			"command": "D:/MinGw/bin/g++.exe",//
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe",
				"-std=c++17"//支持C++17的版本
			],
			"options": {
				"cwd": "D:/MinGw/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: D:/MinGw/bin/g++.exe"//一些描述性信息
		}
	]
}

13. c_cpp_properties.json

c_cpp_properties.json 主要用来设置包含头文件的路径,设置 C/C++ 支持的版本号等等

{
    "configurations": [
        {
            "name": "Win32",               //   配置名称可随意更改
            "includePath": [             //运行项目包含.h头文件的目录,
                "${workspaceFolder}/**"
                                        //此处会匹配工作文件下的所有文件
            ],                      //添加"compilerPath"后,系统include路径可不写明
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:/MinGw/bin/g++.exe",//编译器的路径
            "cStandard": "c17",//C标准的版本
            "cppStandard": "c++17",//C++标准的版本
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

14.按F5启动编译和运行

运行结果

vscode第三方库代码提示python vscode 第三方库_json_06

补充:使用第三方库

在vscode使用中如果想使用自定义的函数库或者第三方库需要对tasks和c_cpp_properties.json中的路径进行配置。

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",               //   配置名称可随意更改
            "includePath": [             //运行项目包含.h头文件的目录,在此处添加外部头文件路径
                "${workspaceFolder}/**",
                "C:/test"  //外部路径
                                        //此处会匹配工作文件下的所有文件
            ],                      //添加"compilerPath"后,系统include路径可不写明
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:/MinGw/bin/g++.exe",//编译器的路径
            "cStandard": "c17",//C标准的版本
            "cppStandard": "c++17",//C++标准的版本
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

 tasks.json

使用  “-I” include 头文件以及源文件路径(若函数定义与声明不在一起)。

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "g++build",
			"command": "D:/MinGw/bin/g++.exe",
			"args": [
				"-g",
				"${file}",
				"-I",//引入外部头文件
				"F:\\C++\\headfile",
				"F:\\C++\\headfile\\hello.cpp",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe",
				"-std=c++17"
			],
			"options": {
				"cwd": "D:/MinGw/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: D:/MinGw/bin/g++.exe"
		}
		
	]
}

参数解读:

gcc带不同参数的含义:"-g"产生调试信息,"-c"编译中间目标文件,"-I"指定链接库,"-o"生成指定命名的可执行文件

总结&笔记:

相关代码:

${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test
${workspaceRootFolderName}:表示workspace的文件夹名,也即Test
${file}:文件自身的绝对路径,也即/home/Coding/Test/.vscode/tasks.json
${relativeFile}:文件在workspace中的路径,也即.vscode/tasks.json
${fileBasenameNoExtension}:当前文件的文件名,不带后缀,也即tasks
${fileBasename}:当前文件的文件名,tasks.json
${fileDirname}:文件所在的文件夹路径,也即/home/Coding/Test/.vscode
${fileExtname}:当前文件的后缀,也即.json
${lineNumber}:当前文件光标所在的行号
${env:PATH}:系统中的环境变量

背景知识

gcc

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

g++

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

ref

g++以及gcc的区别

GCC 参数详解

使用 VS Code 搭建轻量美观的 C/C++开发环境