首页 > 编程语言 >vs code c++入门

vs code c++入门

时间:2022-10-27 14:13:10浏览次数:74  
标签:code vscode c++ json vs command cpp exe

新建工程

命令行创建

vscode提供了命令行打开工作目录的功能
mkdir playground
cd playgroud
code .

UI打开

直接使用File->openFolder

command 模式

使用F1快捷键可以打开command功能,这个功能区默认是搜索栏
command功能区可以添加或者编辑工程配置

.vscode无法生成

官方教程显示说,只要打开了某个工作文件夹,就会自动生成.vscode文件夹,包含:

  1. c_cpp_properties.json 配置c++编译器,include路径等
  2. tasks.json run
  3. launch.json debug
    但我的不知道为什么,完全没有.vscode文件夹的生成,只能手动搞一搞
    首先启用command,推荐选用UI,UI里可以添加配置,json模式的话就只能手动编辑一下,UI有选择功能

    添加一个mingw的gcc配置,设置compiler位置和include路径

然后去到生成的c_cpp_properties.json里面,把默认的配置删掉

但是这样生成的配置仅仅是临时的,每次把.vscode删掉时候,或者进入其它工程时候都需要重新配置,怎样设置用户统一的编译参数呢?

答案是 进入c++ extension的setting里面,切换到user tab,设置compiler和include path

这样设置以后重新生成的json,虽然还是一样,但是代码已经可以跳转,并且可以正常运行了

手工json配置

配置c++的官方教程可以参考:https://code.visualstudio.com/docs/cpp/config-mingw#_create-hello-world

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "GCC",
            "includePath": [
                "${default}",
                "C:/msys64/mingw64/include/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "windows-gcc-x64",
            "compilerPath": "C:/msys64/mingw64/bin/cpp.exe"
        }
    ],
    "version": 4
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe build active file",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++: g++.exe build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++.exe build active file"
    }
  ]
}

WSL

WSL配置的之后用clang++编译器跑不过,看起来vscode似乎不支持clang,看看他们取的标题:

所以在wsl工程上还是用g++来编译吧

标签:code,vscode,c++,json,vs,command,cpp,exe
From: https://www.cnblogs.com/changweijinghu/p/16831700.html

相关文章

  • leetcode-1758-easy
    MinimumChangesToMakeAlternatignBinaryStringYouaregivenastringsconsistingonlyofthecharacters'0'and'1'.Inoneoperation,youcanchangeany......
  • leetcode-704-easy
    BinarySearchGivenanarrayofintegersnumswhichissortedinascendingorder,andanintegertarget,writeafunctiontosearchtargetinnums.Iftargete......
  • linux LVS的DR模式多网段
    架构图:多网段:客户机位于192.168.10.x/24网段RS位于:10.0.0.x/24网段VIP:位于172.16.0.x/24网关通信过程:客户机(CIP)---->lvs(VIP)---->lvs(DIP)---->RS(RIP)-......
  • 面向对象程序设计笔记(c++)
    时间:2019/5/21学习要知其然,也要知其所以然。第一章对C的补充1.C++的输入输出2用const定义常变量3重载4引用5内置函数6作用域运算符7字符串变量8动态分配和撤消内存的运算符......
  • 【JSON】Python读取JSON文件报错json.decoder.JSONDecodeError的问题
    报错json.decoder.JSONDecodeError:Expectingpropertynameenclosedindoublequotes:line*column*(char*)解决百度到了多种情况:编码使用UTF-8键值用双引......
  • leetcode 206. 反转链表 js实现
    给你单链表的头节点head,请你反转链表,并返回反转后的链表。 示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出......
  • code-server
    code-serverUsage#https://github.com/linuxserver/docker-code-server/blob/master/README.md#PORT:8443dockerpulllinuxserver/code-serverdockerrun--detac......
  • C++ 的有理数类 Rational 实现
    classRational{staticinlineintgcd(inta,intb){if(!b)returnabs(a);while((a%=b)&&(b%=a));//doinwhileret......
  • 用 C++ 实现 Python 中的 range
    在C++中实现Python的range目录在C++中实现Python的range在实现过程中几个应该注意的问题整型溢出迭代器选择终止条件类型选择vector转换最终代码和Python对比代码在最后,......
  • c++ 中 const, constexpr 的使用
    目录参数例外返回值例外constthis和成员const_cast与constexpr的关系函数变量构造函数C++与C语言相比有着更强的类型检查,包括四种cast,左值右值之分,reference,以及......