精华内容
下载资源
问答
  • 主要介绍了解析VScode在Windows环境下c_cpp_properties.json文件配置问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • c_cpp_properties.json

    2021-10-31 16:55:44
    win10 vscode cpp配置文件
  • 主要补了一下C++编译连接的知识,顺带着学习了一下VS code编写C++的环境配置问题,详细学习了几个json文件的作用

    主要补了一下C++编译连接的知识,顺带着学习了一下VS code编写C++的环境配置问题,详细学习了几个json文件的作用

    之前学习C++语法的时候一直用的visual studio,奈何到ubuntu下没有visual studio,于是下载了VS code,菜鸡是不会用Vim的 0.0

    本来以为VS code和visual studio一样,我新建cpp文件写个代码就能运行,结果发现并!不!是!这!样!百度了一下VS code写C++需要配置环境,好吧那就配置,按照网上的做法先下载g++和gdb,虽然不知道是干啥的,ok让我下我就下吧。下载完后装好在C++插件,然后创建tasks.json和launch.json两个配置文件,这块就有问题了:这俩配置文件是干啥的?里面的参数代表啥意思?为啥我按照博主教的方法写了一模一样的配置,我这里就运行报错呢!!!

    好吧我是真的没在网上找到有用的信息,所有的博客清一色,“按照我这样配置就行了,不用问为什么,是什么。。。。”我晕!浪费了好多时间,最后看官方文档,真香!

    回到正题,首先要知道C++编译连接的机制:
    首先我们目录如下:

    —project1
     ——include
     ————func.h
     ——src
     ————func.cpp
     ——main.cpp
    

    细节网上一大堆,这里注意两点就行

    • 编译时对每个cpp文件进行单独编译,同时要用-I 标记头文件目录g++ -c main.cpp src/func.cpp -I include/
    • 只将编译cpp文件生成的.o文件链接起来g++ func.o main.o

    OK有了这点知识,首先配置我们的tasks.json文件,这个文件实际上就是用来控制c++编译链接过程的,这里面注意要根据我们项目的实际情况来修改tasks.json文件,看下面的代码,args就是我们通常使用g++ 编译链接cpp文件时后面跟的控制指令

    {
    	"version": "2.0.0",
    	"tasks": [
    		{
    			"type": "cppbuild",
    			"label": "g++ build active file",
    			"command": "/usr/bin/g++",
    			"args": [
    				"-g",
    				"${workspaceFolder}/src/*.cpp", //头文件实现的cpp文件
    				"${workspaceFolder}/*.cpp",// main.cpp
    				"-I",
    				"${workspaceFolder}/include", // 头文件路径
    				"-o",
    				"${fileDirname}/${fileBasenameNoExtension}"
    			],
    			"options": {
    				"cwd": "${workspaceFolder}"
    			},
    			"problemMatcher": [
    				"$gcc"
    			],
    			"group": {
    				"kind": "build",
    				"isDefault": true
    			},
    			"detail": "compiler: /usr/bin/g++"
    		}
    	]
    }
    

    这里面 -g 表示启用gdb调试,-I如前所述定位头文件位置,"${workspaceFolder}/src/*.cpp","${workspaceFolder}/*.cpp"这个表示我们的所有cpp文件名称。
    其中workspaceFolder是指工作文件夹,也就是home/xx/VSCODE/project1/,关于此类运行时变量,参考官方文档。例如fileBasenameNoExtension,当我们打开哪个文件时,他就是哪个文件的名称,所以不要在json文件页面中按ctrl+shift+b编译,这样会生成一个名字为json的可执行文件。。。

    说完了tasks.json,接着说一下VSCODE include path的问题,当我们需要引入头文件时,我们需要将自己写的头文件的路径加入include path中,具体做法是创建c_cpp_properties.json文件,将头文件路径加入includePath中:

    {
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**",
                    "${workspaceFolder}/include" //这里是我自己的头文件路径
                ],
                "defines": [],
                "compilerPath": "/usr/bin/clang",
                "cStandard": "c11",
                "cppStandard": "c++14",
                "intelliSenseMode": "clang-x64"
            }
        ],
        "version": 4
    }
    

    最后,如果我们还想要调试c++代码,此时需要创建launch.json,系统默认生成的json我们是不需要修改的,这里注意,launch.json文件就是指定我们要调试的对象,我们最后编译链接的结果是main这个文件,因此我们就是针对它进行调试,在launch.json中"program": "${fileDirname}/${fileBasenameNoExtension}",program就是指定了这个文件。当我们在main.cpp文件页面按下f5,那么运行时变量{fileDirname}就是project1/,{fileBasenameNoExtension}就是main,这样就定位了要调试的文件。
    还有一点要注意:"preLaunchTask": "g++ build active file",preLaunchTask后的参数要和tasks.json中的label参数一致,这样在我们改完代码后,f5调试时才能自动调用tasks.json文件对新代码编译链接生成新的可执行文件,再进行调试。
    附上launch.json文件:

    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++ - 生成和调试活动文件",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}/${fileBasenameNoExtension}",//要调试的可执行文件
                "args": [],
                "stopAtEntry": true,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "g++ build active file", //这里和tasks.json中label参数一致
                "miDebuggerPath": "/usr/bin/gdb"
            }
        ]
    }
    
    展开全文
  • { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "/User", "/Libraries/CMSIS/CM3/CoreSupport", "/Libraries/STM32F10x_StdPeriph_Driver/inc", "/Driver/inc/", "/Public/in...
    {
        "configurations": [
            {
                "name": "Win32",
                "includePath": [
                    "${workspaceFolder}/**",
                    "/User",
                    "/Libraries/CMSIS/CM3/CoreSupport",
                    "/Libraries/STM32F10x_StdPeriph_Driver/inc",
                    "/Driver/inc/",
                    "/Public/inc/",
                    "/App/inc/",
                    "D:/Keil_MDK/ARM/ARMCC/include",
                    "D:/Keil_MDK/ARM/ARMCC/include/rw"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "_UNICODE",
                    "USE_STDPERIPH_DRIVER",
                    "STM32F10X_MD"
                ],
                "windowsSdkVersion": "10.0.18362.0",
                "compilerPath": "D:/Program Files/mingw64/bin/gcc.exe",
                "cStandard": "c17",
                "cppStandard": "c++17",
                "intelliSenseMode": "${default}"
            }
        ],
        "version": 4
    
    }

    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/202009/22/1600784386_2092.png)
  • vs code 配置C++过程中竟然遇到了点小问题,所以记录一下。...至于c_cpp_properties.json 文件的作用和试用方法,在官方文档 https://code.visualstudio.com/docs/cpp/config-mingw 尾部有详细讲解。

    vs code 配置C++过程中竟然遇到了点小问题,所以记录一下。

    vs code 官网下载:https://code.visualstudio.com/。

    mingw-w64编译器下载 http://mingw-w64.org/doku.php/download,安装过程中需要根据电脑架构Architecture(32位还是64位)做一个选择:

    32位选i686,64位选择x86_64选项,其余不变,MinGW-W64安装完成后将bin路径添加到环境变量。在命令行中或windowpowershell 中检查安装情况: gcc -v ,gdb -v ,检查安装成功。设置环境变量的时候可以直接将C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0路径下的bin文件夹拷贝到C:\mingw64,将路径C:\mingw64\bin添加到系统的环境变量Path.

    想知道MinGW是啥各个选项是什么,看这里(就是篇幅有点长):https://www.cnblogs.com/ggg-327931457/p/9694516.html。

    vs code配置C++官网教程: https://code.visualstudio.com/docs/cpp/config-mingw。配置过程讲解的非常详细全面,注意一定要在整篇教程读完之后再去操作,仔细看基本上都可以看懂。

    这篇文章的重点是:在配置过程中的tasks.json(编译指令设置)、launch.json(调试器设置)两个文件是自动生成 的,可能有时候会改动其中的g++ 和 gdb 路径。

    完成C++的.cpp 文件之后:选择左侧调试器 Run and Debug ->create a lauch.json file。

              接下来,选择C++ (GDB/LLDB)这个选项。如果没有出现这个选项,将上一步生成的launch.json文件删掉,重复上述操作。

              配置好的launch.json如下图,注意“mDebugerPath”是否正确:

    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe build and debug active file",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "g++.exe build active file"
            }
        ]
    }

    然后,再选择g++.exe build and debug active file选项。gcc.exe 选项是编译C语言的。

    配置好的tasks.json 如下图,注意“command” “cwd”路径。

    {
        "tasks": [
            {
                "type": "shell",
                "label": "g++.exe build active file",
                "command": "C:\\mingw64\\bin\\g++.exe",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"
                ],
                "options": {
                    "cwd": "C:\\mingw64\\bin"
                }
            }
        ],
        "version": "2.0.0"
    }

    这样tasks.json、launch.json两个文件自动添加完成。

    至于c_cpp_properties.json 文件的作用和试用方法,在官方文档https://code.visualstudio.com/docs/cpp/config-mingw尾部有详细讲解。

    展开全文
  • VSCode配置c_cpp_properties.json文件

    万次阅读 多人点赞 2019-08-20 19:25:11
    这是Ubuntu平台上默认生成的c_cpp_properties.json文件,可在这个文件中添加配置。 对于Windows环境下,需要自己下载编译器安装并配置,比如我下载了MinGW64,然后需要配置环境变量: 变量名:MINGW 变量值:D:\...

    转载自:https://blog.csdn.net/fightfightfight/article/details/82857397

    1.安装C/C++ for Visual Studio Code

    点击左边扩展栏图标—>搜索C/C++ -> 安装->Reload:
    在这里插入图片描述

    安装完成之后,打开你的包含c++的文件夹,将会生成一个.vscode文件夹,所有的配置将在这个文件夹中进行配置。

    2.配置IntelliSense

    扩展程序会根据当前系统环境配置基本信息,因此有可能配置不完整,这时需要通过生成c_cpp_properties.json文件来配置缺少的信息:

    ctrl+shift+P打开Command Palette,运行C/Cpp: Edit configurations...生成c_cpp_properties.json:

    {
        "configurations": [
            {
                "name": "Linux",        
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [],
                "compilerPath": "/usr/bin/gcc",  //编译器路径
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "clang-x64"
            }
        ],
        "version": 4
    }
    
      

      这是Ubuntu平台上默认生成的c_cpp_properties.json文件,可在这个文件中添加配置。

      对于Windows环境下,需要自己下载编译器安装并配置,比如我下载了MinGW64,然后需要配置环境变量:

      变量名:MINGW
      变量值:D:\worksoftware\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin
      引入到Path环境变量中:
      %MINGW%
      
        

      然后重启VS code,并在c_cpp_properties.json文件中添加:

      "compilerPath":  "D:\\worksoftware\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\g++.exe"
      
        

      3.构建应用程序

      如果要构建应用程序,则需要生成tasks.json文件:

      Ctrl+Shift+P -> Tasks: Configure Tasks… -> Create tasks.json file from templates -> Others.

      {
          // See https://go.microsoft.com/fwlink/?LinkId=733558
          // for the documentation about the tasks.json format
          "version": "2.0.0",
          "tasks": [
              {
                  "label": "build demo1",                                 //任务标签
                  "type": "shell",                                             //类型
                  "command": "g++",                                    //对应的命令:g++ -g demo1.cpp -o demo
                  "args": [
                      "-g",
                      "demo1.cpp",
                      "-o",
                      "demo"
                  ],
                  "problemMatcher": [],
                  "group": {
                      "kind": "build",
                      "isDefault": true
                  }
              }
          ]
      }
      
        

      生成tasks.json后,根据自己需求修改commandargs或其他字段。

      4.DEBUG代码

      要启用调试,需要生成launcher.json文件:

      点击菜单栏DEBUG->Add Configuration ->选择C++ (GDB/LLDB)(Windows下选择C++ Windows) ,这时将会生成launcher.json文件:

      {
          // Use IntelliSense to learn about possible attributes.
          // Hover to view descriptions of existing attributes.
          // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "(gdb) Launch",
                  "type": "cppdbg",   //正在使用的调试器,使用Visual Studio Windows时必须为cppvsdbg,使用GDB或LLDB时必须为cppdbg.
                  "request": "launch",  //表示此配置是用于启动程序还是附加到已运行的实例上
                  "program": "${workspaceFolder}/demo",   //要执行的可执行文件的完整路径
                  "args": [],
                  "stopAtEntry": false,
                  "cwd": "${workspaceFolder}",            //设置调试器启动的应用程序的工作目录
                  "environment": [],
                  "externalConsole": true,
                  "MIMode": "gdb",   //要连接的调试器
                  "setupCommands": [
                      {
                          "description": "Enable pretty-printing for gdb",
                          "text": "-enable-pretty-printing",
                          "ignoreFailures": true
                      }
                  ]
              }
          ]
      }
      
        

      生成launcher.json文件后,其他的属性可不改,但必须将program属性的值修改为要执行的文件。然后点击Debug->Start Debugging,既可以开始调试了,点击侧边栏的Debug图标可查看BreakPoint、Call Stack等。

      参考文档

      VS Code 官方文档

      展开全文
    • C/C++环境之launch.json、tasks.json极简设置 Setp1. 点击创建launch.json文件 setp2. 选择C++(GDB/LLDB) setp3. 设置如图 setp4. ctrl shift p—>输入tasks:configure Task—>点击 setp5. 点击C/C++ g++....
    • 不增加配置找不到函数的定义 ... "C_Cpp.inactiveRegionOpacity": null, "C_Cpp.intelliSenseEngineFallback": "Disabled", //需要添加的 "C_Cpp.intelliSenseEngine": "Tag Parser", } c_cpp_pro
    • 步骤1: 步骤2: 界面上方中心会显示一个下拉菜单,显示三个选项: WIN32 编辑配置(UI) 编辑配置(JSON) 步骤3: 点击编辑配置(JSON) 结果如下: 完成。
    • 这篇笔记的目的就是配置好c/c++插件代码的智能提示,方便以后写嵌入式代码的时候能够快速配置好 例子(来自官方文档) { "env": { "myDefaultIncludePath": ["${workspaceFolder}", "${workspaceFolder}/include"], ...
    • 打开vscode 点击最下方一行蓝色的右边的win32 点击编辑配置(JSON),就打开啦
    • vscode配置boost的tasks,c_cpp_properties.json出现问题
    • 打开 VSCode ,安装 C / C++ 的扩展后,按如下网页的教程操作: https://code.visualstudio.com/docs/cpp/config-linux
    • 当出现头文件错误时,系统提示我们includePath有问题。 这时候,进入命令台,输入以下命令:> gcc -v -E -x c++ - 选择如下框的东西,按格式填入即可。 ...
    • 官网文档 c_cpp_properties.json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**" ], "defines": [], "compilerPath": "/usr/bin/gcc",
    • 初次使用VScode,我们都会碰到一个问题,就是在编写C和C++源文件时,头文件提示未配置好等错误。关于这个问题,给出方案如下:我想大家碰到的最多的问题就是"includepath"的设置问题: 1. "C:/MinGW/include/**"为...
    • VSCode配置文件“.vscode/c_cpp_properties.json”不断被覆盖的原因及解决方法
    • 复制粘贴到文件里,需要修改的地方都标出来了 特别注意的是,如果用的是C++,那么三个文件中的gcc要改成g++ 1.c_cpp_propertise.json 在这个代码中,我们需要把地址改成自己的mingw 64 bin的地址 { "configurations...
    • launch.json { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: ...
    • ![图片说明](https://img-ask.csdn.net/upload/202006/23/1592906705_871222.png) 如图中的波浪线,报错信息为 ![图片说明](https://img-ask.csdn.net/upload/202006/23/1592906805_662408.png) 请大佬解答

    空空如也

    空空如也

    1 2 3 4 5 ... 20
    收藏数 2,931
    精华内容 1,172
    关键字:

    c_cpp_properties.json