ono是什么意思| 道观是什么意思| 什么是交感神经| 牙齿松动吃什么药最好| 喉咙痛去药店买什么药| br什么意思| 甲亢去医院挂什么科| rb是什么| 反复低烧是什么原因| 信五行属什么| 看喉咙挂什么科| 味精是什么做的| hpf医学是什么意思| 猪冲蛇开什么生肖| 肺积水是什么原因引起的| 淋巴滤泡增生是什么意思| cea是什么意思| 盥洗室什么意思| 半夏是什么| 木灵念什么| 前降支中段心肌桥什么意思| 流沙是什么意思| 什么时候阅兵| 万宝龙属于什么档次| 正方形的纸能折什么| 吃毛蛋有什么好处| 翻墙是什么| 调和油是什么油| 晚上睡觉放屁多是什么原因| 世界上最长的河流是什么| 牙疼挂什么科| 歌字五行属什么| 多吃黑芝麻有什么好处| 靴靴是什么意思| 2月29日是什么星座| 四维是什么意思| 一什么云彩| chanel是什么牌子| 午安是什么意思| 6月18日是什么节| 感冒吃什么恢复快| 梦见死去的亲人是什么意思| icu和ccu有什么区别| 研讨会是什么意思| gm眼镜是什么牌子| 女人为什么会叫| 人爱出汗是什么原因| 怀孕第一个月吃什么对胎儿好| 左手指头麻木是什么原因| 属鸡的本命佛是什么佛| 吃干饭是什么意思| 不知道叫什么名字好| 大米含有什么营养成分| 月加亏念什么| 苹果充电口叫什么| 易岗易薪是什么意思| 盐是什么味道| 牙龈出血缺什么维生素| 天蝎女喜欢什么样的男生| 情人节送妈妈什么花| 尿路感染吃什么药| 尿路感染是什么症状| 纷呈是什么意思| 碳酸盐是什么| 月经量少是什么原因| 重阳节应该吃什么| 宝宝支气管炎吃什么药| 身高用什么单位| 亚硝酸钠是什么| 焦糖色裤子配什么颜色上衣| 男性内分泌失调吃什么药| 宽粉是什么做的| 滑膜炎是什么原因引起的| 屁股眼痒是什么原因| 今天出生的男宝宝取什么名字好| 降钙素原检测是什么| 腹泻拉稀水是什么原因| 天麻有什么作用与功效| belle什么意思| 卫生纸筒可以做什么| 脚臭是什么原因| 长期拉肚子是怎么回事什么原因造成| 属相鸡与什么属相相合| 病理会诊是什么意思| 半套是什么意思| 什么是胆固醇| 滑膜炎是什么症状| 日柱华盖是什么意思| 眷顾是什么意思| 耘是什么意思| 为什么不建议小孩吃罗红霉素| 深海鱼油有什么作用| 人类祖先是什么动物| vup是什么意思| 101什么意思| 肝胆湿热用什么药| evisu是什么牌子| 脚上脱皮是什么原因| 考试穿什么颜色的衣服| 眼睛红用什么眼药水| 什么时候阅兵| 胎盘什么时候形成| 痿是什么意思| 喉咙痒是什么原因引起的| 印劫是什么意思| 玫瑰花代表什么意思| acei是什么意思| 外阴红肿疼痛用什么药| 孕妇什么不能吃| 途径是什么意思| 麻婆豆腐是什么菜系| 甲状腺炎有什么症状| 待我长发及腰时下一句是什么| 甚嚣尘上是什么意思| 槟榔吃多了有什么危害| 黄糖是什么糖| white是什么意思颜色| 羸弱什么意思| 牛拉稀用什么药最快| 甲钴胺有什么副作用| 大林木是什么生肖| 去减一笔变成什么字| 什么是破窗效应| 埃及法老是什么意思| 什么吞什么咽| 盗汗是什么原因造成的| lo娘是什么意思| 拔罐对身体有什么好处| 恒顺众生是什么意思| 衣服36码相当于什么码| 起酥油是什么东西| 那是什么| 怀孕吃火龙果对胎儿有什么好| 过敏性咳嗽有什么症状| 氯化钠是什么东西| 吃什么菜对肝好怎么养肝| 喝中药能吃什么水果| 钢琴8级什么水平| dha什么牌子好| 牙齿流血是什么原因| 葫芦代表什么寓意| 绝症是什么意思| 核磁是什么| 什么牌子的空调好用又省电| 贫血是什么原因| 话题是什么意思| 黑鱼不能和什么一起吃| 天冬氨酸氨基转移酶高是什么原因| 溶栓是什么意思| 凌晨三点醒是什么原因| 什么地端详| polo是什么意思| 女人能日到什么时候| 取笑是什么意思| haccp是什么认证| 肚皮冰凉是什么原因呢| 舌尖发麻是什么病的前兆| 洪字五行属什么| 岳云鹏什么学历| 风湿关节炎用什么药| 班门弄斧是什么意思| 端午节有什么习俗| 1月21号什么星座| 处女膜是什么颜色| 右手中指指尖麻木是什么原因| 6月7号什么星座| 鸭肫是什么| 6月20是什么星座| 四月十五什么星座| super是什么意思| 见路不走是什么意思| 右后背疼是什么病| 阅后即焚什么意思| 总胆红素偏高有什么危害| 什么叫白眼狼| 缺钾是什么病| 办离婚证需要带什么证件| 迎合是什么意思| 高血压是什么原因引起的| 头发出汗多是什么原因| 大便秘结是什么意思| 84年是什么命| 子宫前置是什么意思| 喝什么茶养胃| 包皮过长挂什么科| 丁字是什么意思| cordura是什么面料| 女性漏尿挂什么科| 什么狗聪明听话又好养| 肛门痒擦什么药| pic什么意思| 甜菜什么意思| 报销凭证是什么| 胡说八道是什么意思| hi是什么酸| 咳嗽吃什么好的快偏方| 五月初是什么星座| 青鱼是什么鱼| 胆囊结石会引起身体什么症状| 晚上吃什么不胖| 锡是什么金属| 眼睛疲劳干涩用什么眼药水| 白喉是什么病| 11月9日是什么星座| 为什么不孕不育| 金多水浊什么意思| 日本人为什么喜欢喝冰水| 腿抽筋是什么原因造成的| 身上发冷是什么原因| 上半身胖属于什么体质| 雾化是什么意思| 什么火锅最好吃| 2016年属猴是什么命| 姚字五行属什么| 猫什么时候绝育| 姑息什么意思| ast什么意思| 骨痂是什么意思| 乙肝45阳性什么意思| 木色是什么颜色| 骨头是什么垃圾| 黏膜是什么意思| od什么意思| 君子兰用什么土最好| 面碱是什么| 闰月什么意思| com是什么| 贫血三项是指什么检查| 列巴是什么| 菠萝蜜吃多了有什么坏处| 肚兜是什么| 健康证都查什么传染病| vivo是什么牌子的手机| 什么时间段买机票最便宜| 七月十六是什么星座| 白酒兑什么好喝| 什么规律| 天妇罗是什么意思| 一个火一个旦读什么字| 火山飘雪是什么菜| 7.11什么星座| 扁桃体发炎引起的发烧吃什么药| scr是什么意思| 怀孕为什么会恶心想吐| 减肥最快的运动是什么运动| 女人为什么会宫外怀孕| 什么叫浮小麦| 什么叫安全期| srpl是什么药| 7一9点是什么时辰| 毛很长的狗是什么品种| 掉头发是什么原因导致的| 孙武和孙膑是什么关系| 帝加口念什么| 卫生纸属于什么垃圾| 以什么乱什么| 肌红蛋白低说明什么| 吃什么减肥最快| 阑尾炎是什么引起的| 吃什么长胎不长肉| 西安香烟有什么牌子| 吃党参有什么好处| 左眼皮一直跳什么预兆| 囊性结节是什么意思| 百度

Try to extend agent mode in VS Code!

egg是什么意思

百度 阳虚型肥胖用肉桂。

In this tutorial, you will configure Visual Studio Code to use the GCC C++ compiler (g++) and GDB debugger on Linux. GCC stands for GNU Compiler Collection; GDB is the GNU debugger.

After configuring VS Code, you will compile and debug a simple C++ program in VS Code. This tutorial does not teach you GCC, GDB, Ubuntu or the C++ language. For those subjects, there are many good resources available on the Web.

If you have trouble, feel free to file an issue for this tutorial in the VS Code documentation repository.

Prerequisites

To successfully complete this tutorial, you must do the following:

  1. Install Visual Studio Code.

  2. Install the C++ extension for VS Code. You can install the C/C++ extension by searching for 'c++' in the Extensions view (??X (Windows, Linux Ctrl+Shift+X)).

    C/C++ extension

Ensure GCC is installed

Although you'll use VS Code to edit your source code, you'll compile the source code on Linux using the g++ compiler. You'll also use GDB to debug. These tools are not installed by default on Ubuntu, so you have to install them. Fortunately, that's easy.

First, check to see whether GCC is already installed. To verify whether it is, open a Terminal window and enter the following command:

gcc -v

If GCC isn't installed, run the following command from the terminal window to update the Ubuntu package lists. An out-of-date Linux distribution can sometimes interfere with attempts to install new packages.

sudo apt-get update

Next install the GNU compiler tools and the GDB debugger with this command:

sudo apt-get install build-essential gdb

Create Hello World

From the terminal window, create an empty folder called projects to store your VS Code projects. Then create a subfolder called helloworld, navigate into it, and open VS Code in that folder by entering the following commands:

mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .

The code . command opens VS Code in the current working folder, which becomes your "workspace". As you go through the tutorial, you will create three files in a .vscode folder in the workspace:

  • tasks.json (compiler build settings)
  • launch.json (debugger settings)
  • c_cpp_properties.json (compiler path and IntelliSense settings)

Add hello world source code file

In the File Explorer title bar, select New File and name the file helloworld.cpp.

New File title bar button

Paste in the following source code:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;

    return 0;
}

Now press ?S (Windows, Linux Ctrl+S) to save the file. Notice that your files are listed in the File Explorer view (??E (Windows, Linux Ctrl+Shift+E)) in the side bar of VS Code:

File Explorer

You can also enable Auto Save to automatically save your file changes, by checking Auto Save in the main File menu.

The Activity Bar on the edge of Visual Studio Code lets you open different views such as Search, Source Control, and Run. You'll look at the Run view later in this tutorial. You can find out more about the other views in the VS Code User Interface documentation.

Note: When you save or open a C++ file, you may see a notification from the C/C++ extension about the availability of an Insiders version, which lets you test new features and fixes. You can ignore this notification by selecting the X (Clear Notification).

Explore IntelliSense

In the helloworld.cpp file, hover over vector or string to see type information. After the declaration of the msg variable, start typing msg.as you would when calling a member function. You should immediately see a completion list that shows all the member functions, and a window that shows the type information for the msg object:

Statement completion IntelliSense

You can press the Tab key to insert the selected member. Then, when you add the opening parenthesis, you'll see information about arguments that the function requires.

Run helloworld.cpp

Remember, the C++ extension uses the C++ compiler you have installed on your machine to build your program. Make sure you have a C++ compiler installed before attempting to run and debug helloworld.cpp in VS Code.

  1. Open helloworld.cpp so that it is the active file.

  2. Press the play button in the top right corner of the editor.

    Screenshot of helloworld.cpp and play button

  3. Choose g++ build and debug active file from the list of detected compilers on your system.

    C++ debug configuration dropdown

You'll only be asked to choose a compiler the first time you run helloworld.cpp. This compiler will be set as the "default" compiler in tasks.json file.

  1. After the build succeeds, your program's output will appear in the integrated Terminal.

    screenshot of program output

The first time you run your program, the C++ extension creates tasks.json, which you'll find in your project's .vscode folder. tasks.json stores build configurations.

Your new tasks.json file should look similar to the JSON below:

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "C/C++: g++ build active file",
      "command": "/usr/bin/g++",
      "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": {
        "cwd": "/usr/bin"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "Task generated by Debugger."
    }
  ]
}

Note: You can learn more about tasks.json variables in the variables reference.

The command setting specifies the program to run; in this case that is g++. The args array specifies the command-line arguments that will be passed to g++. These arguments must be specified in the order expected by the compiler.

This task tells g++ to take the active file (${file}), compile it, and create an executable file in the current directory (${fileDirname}) with the same name as the active file but without an extension (${fileBasenameNoExtension}), resulting in helloworld for our example.

The label value is what you will see in the tasks list; you can name this whatever you like.

The detail value is what you will see as the description of the task in the tasks list. It's highly recommended to rename this value to differentiate it from similar tasks.

From now on, the play button will read from tasks.json to figure out how to build and run your program. You can define multiple build tasks in tasks.json, and whichever task is marked as the default will be used by the play button. In case you need to change the default compiler, you can run Tasks: Configure default build task. Alternatively you can modify the tasks.json file and remove the default by replacing this segment:

    "group": {
        "kind": "build",
        "isDefault": true
    },

with this:

    "group": "build",

Modifying tasks.json

You can modify your tasks.json to build multiple C++ files by using an argument like "${workspaceFolder}/*.cpp" instead of "${file}".This will build all .cpp files in your current folder. You can also modify the output filename by replacing "${fileDirname}/${fileBasenameNoExtension}" with a hard-coded filename (for example 'helloworld.out').

Debug helloworld.cpp

To debug your code,

  1. Go back to helloworld.cpp so that it is the active file.
  2. Set a breakpoint by clicking on the editor margin or using F9 on the current line. screenshot of breakpoint in helloworld.cpp
  3. From the drop-down next to the play button, select Debug C/C++ File. Screenshot of play button drop-down
  4. Choose C/C++: g++ build and debug active file from the list of detected compilers on your system (you'll only be asked to choose a compiler the first time you run or debug helloworld.cpp). C++ debug configuration dropdown

The play button has two modes: Run C/C++ File and Debug C/C++ File. It will default to the last-used mode. If you see the debug icon in the play button, you can just select the play button to debug, instead of selecting the drop-down menu item.

Explore the debugger

Before you start stepping through the code, let's take a moment to notice several changes in the user interface:

  • The Integrated Terminal appears at the bottom of the source code editor. In the Debug Output tab, you see output that indicates the debugger is up and running.

  • The editor highlights line 12, which is a breakpoint that you set before starting the debugger:

    Initial breakpoint

  • The Run and Debug view on the left shows debugging information. You'll see an example later in the tutorial.

  • At the top of the code editor, a debugging control panel appears. You can move this around the screen by grabbing the dots on the left side.

    Debugging controls

If you already have a launch.json file in your workspace, the play button will read from it when figuring out how run and debug your C++ file. If you don’t have launch.json, the play button will create a temporary “quick debug” configuration on the fly, eliminating the need for launch.json altogether!

Step through the code

Now you're ready to start stepping through the code.

  1. Click or press the Step over icon in the debugging control panel.

    Step over button

    This will advance program execution to the first line of the for loop, and skip over all the internal function calls within the vector and string classes that are invoked when the msg variable is created and initialized. Notice the change in the Variables window on the side.

    Debugging windows

  2. Press Step over again to advance to the next statement in this program (skipping over all the internal code that is executed to initialize the loop). Now, the Variables window shows information about the loop variables.

  3. Press Step over again to execute the cout statement. (Note that the C++ extension does not print any output to the Debug Console until the last cout executes.)

  4. If you like, you can keep pressing Step over until all the words in the vector have been printed to the console. But if you are curious, try pressing the Step Into button to step through source code in the C++ standard library!

    Breakpoint in gcc standard library header

    To return to your own code, one way is to keep pressing Step over. Another way is to set a breakpoint in your code by switching to the helloworld.cpp tab in the code editor, putting the insertion point somewhere on the cout statement inside the loop, and pressing F9. A red dot appears in the gutter on the left to indicate that a breakpoint has been set on this line.

    Breakpoint in main

    Then press F5 to start execution from the current line in the standard library header. Execution will break on cout. If you like, you can press F9 again to toggle off the breakpoint.

    When the loop has completed, you can see the output in the Debug Console tab of the integrated terminal, along with some other diagnostic information that is output by GDB.

    Debug console display

Set a watch

To keep track of the value of a variable as your program executes, set a watch on the variable.

  1. Place the insertion point inside the loop. In the Watch window, click the plus sign and in the text box, type word, which is the name of the loop variable. Now view the Watch window as you step through the loop.

    Watch window

  2. To quickly view the value of any variable while execution is paused on a breakpoint, you can hover over it with the mouse pointer.

    Mouse hover

Next, you'll create a tasks.json file to tell VS Code how to build (compile) the program. This task will invoke the g++ compiler to create an executable file from the source code.

It's important to have helloworld.cpp open in the editor because the next step uses the active file in the editor for context to create the build task in the next step.

Customize debugging with launch.json

When you debug with the play button or F5, the C++ extension creates a dynamic debug configuration on the fly.

There are cases where you'd want to customize your debug configuration, such as specifying arguments to pass to the program at runtime. You can define custom debug configurations in a launch.json file.

To create launch.json, choose Add Debug Configuration from the play button drop-down menu.

Add debug configuration play button menu

You'll then see a dropdown for various predefined debugging configurations. Choose g++ build and debug active file.

C++ debug configuration dropdown

VS Code creates a launch.json file, which looks something like this:

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

In the JSON above, program specifies the program you want to debug. Here it is set to the active file folder ${fileDirname} and active filename without an extension ${fileBasenameNoExtension}, which if helloworld.cpp is the active file will be helloworld. The args property is an array of arguments to pass to the program at runtime.

By default, the C++ extension won't add any breakpoints to your source code and the stopAtEntry value is set to false.

Change the stopAtEntry value to true to cause the debugger to stop on the main method when you start debugging.

From now on, the play button and F5 will read from your launch.json file when launching your program for debugging.

C/C++ configurations

If you want more control over the C/C++ extension, you can create a c_cpp_properties.json file, which will allow you to change settings such as the path to the compiler, include paths, C++ standard (default is C++17), and more.

You can view the C/C++ configuration UI by running the command C/C++: Edit Configurations (UI) from the Command Palette (??P (Windows, Linux Ctrl+Shift+P)).

Command Palette

This opens the C/C++ Configurations page. When you make changes here, VS Code writes them to a file called c_cpp_properties.json in the .vscode folder.

IntelliSense configuration window

You only need to modify the Include path setting if your program includes header files that are not in your workspace or in the standard library path.

Visual Studio Code places these settings in .vscode/c_cpp_properties.json. If you open that file directly, it should look something like this:

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

Reusing your C++ configuration

VS Code is now configured to use gcc on Linux. The configuration applies to the current workspace. To reuse the configuration, just copy the JSON files to a .vscode folder in a new project folder (workspace) and change the names of the source file(s) and executable as needed.

Troubleshooting

Compiler and linking errors

The most common cause of errors (such as undefined _main, or attempting to link with file built for unknown-unsupported file format, and so on) occurs when helloworld.cpp is not the active file when you start a build or start debugging. This is because the compiler is trying to compile something that isn't source code, like your launch.json, tasks.json, or c_cpp_properties.json file.

Next steps

鼻毛变白什么征兆 明年属相是什么生肖 脾虚湿盛吃什么中药 面膜什么时候敷效果最好 水宝宝是什么
什么是免疫组化 急性肠炎吃什么药 失足妇女是什么意思 为什么广西女孩子好娶 脚后跟开裂用什么药
小孩吐奶是什么原因 大白刁是什么鱼 非淋菌性尿道炎吃什么药最好 30周做什么检查 蚯蚓吃什么
孺子是什么意思 甲状腺做什么检查 得了艾滋病会有什么症状 维生素e是什么 梦到自己头发白了是什么意思
婴幼儿吃什么奶粉好hcv9jop2ns5r.cn 孀居是什么意思hcv8jop8ns7r.cn 卵巢早衰有什么症状hcv7jop9ns9r.cn 蚊子为什么要吸血hcv8jop8ns8r.cn 办理住院手续需要带什么证件qingzhougame.com
宋美龄为什么没有孩子hcv8jop0ns9r.cn 低血压高什么原因hcv9jop6ns3r.cn 步步生花是什么意思hcv9jop1ns8r.cn 肝火旺盛吃什么药效果最好hcv9jop0ns5r.cn 空囊是什么原因造成的xinjiangjialails.com
空调出现pl是什么意思hcv8jop5ns4r.cn 卉是什么意思hcv7jop6ns9r.cn 男人气血不足吃什么药hcv8jop4ns0r.cn 全血是什么hcv9jop3ns6r.cn 什么颜色加什么颜色等于蓝色hcv8jop1ns2r.cn
眼镜轴向是什么意思hcv8jop2ns3r.cn 恐龙为什么会灭绝hcv8jop0ns8r.cn 运六月有什么说法youbangsi.com 动脉圆锥是什么意思hcv7jop7ns1r.cn 平均血红蛋白浓度偏低是什么意思hcv9jop6ns2r.cn
百度