首页 体育世界正文

王自健,我用VScode编写C / C ++代码三年才知道,成语词典

主张合作运用CMake,或许codeblock下载完直接用吧。

主张调配好gcc 和gdb环境,可是没办法和vs那样检查内存,只能敲指令检查。但仍是期望共享出来给咱们! 引荐运用☆☆☆

gcc和gdb后续文章中会宣布详解给咱们,记住重视我。

Microsoft C / C ++扩展供给了对Visual Studio Code的C / C ++支撑,以便在Windows,Linux和macOS上运用VS Code完结跨渠道C和C ++开发。该扩展仍处于预览阶段,咱们重视的是VS代码运转的一切C和C ++代码的代码修正,导航和调试支撑。

假如您只想要一个轻量级东西来修正C ++文件,Visual Studio Code是一个很好的挑选,但假如您期望取得现有Visual C ++项目的最佳体会或在Windows上进行调试,咱们主张您运用Visual Studio IDE的一个版别例如Visual Studio社区。

假如您遇到任何问题或有关于Microsoft C / C ++扩展的主张,请在GitHub上提交问题和主张。假如您没有供给反应,请参与此快速查询,以协助您依据需求拟定此扩展程序。

入门

要装置Microsoft C / C ++扩展,请履行以下操作:

  • 翻开VS代码。单击弥补东西栏上的“扩展视图”图标。查找c++。单击“ 装置”,然后单击“ 从头加载”。

装置C / C ++扩展后,翻开包括C / C ++源代码的文件夹。VS Code会将各种设置文件放入.vscode子文件夹中。

留意:C / C ++扩展不包括C ++编译器或调试器。您需求装置这些东西或运用核算机上已装置的东西。盛行的C ++编译器是用于Windows的mingw-w64,用于macOS的XCode的 Clang 和用于Lin宰相复婚记ux的GCC。确保您的编译器可履行文件坐落您的渠道途径中,以便扩展程序能够找到它。该扩展还支撑Windows的Windows子车上路上体系。

装备IntelliSense

扩展程序将测验依据您在体系上找到的编译器确认文件夹的根本装备信息。假如由于任何原因,该装备不完整,您能够c_cpp_properties.json经过从指令选项板运转C / Cpp:Edit configurations ...指令生成文件(⇧⌘P并增加短少的信息。

假如#include找不到文件或其间一个依靠项,您还能够单击include句子下的绿色曲线来检查有关怎么更新装备的主张。

这将生成一个c_cpp_properties.json文件,答应您增加其他途径并界说以正确启用代码导航和主动完结。

下面您能够看到MinGW C ++编译器已被设置为Windows的默许编译器。扩展将运用该信息来确认体系包括途径和界说,以便不需求增加它们c_cpp_properties.json。

{
"name": "Win32",
"includePath": [
"${workspaceFolder}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"compilerPath": "C:\\mingw-w64\\bin\\gcc.exe",
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}

构建代码

假如要从VS Code构建运用程序,则需求生成一个tasks.json文件:

  • 翻开指令选项板(⇧⌘P)。挑选Tasks:Configure Tasks ...指令,单击模板中的Create tasks.json文件,您将看到使命运转器模板列表。挑选Others以创立运转外部指令的使命。更改为command用于构建运用程序的指令行表达式(例如g++)。增加任何必需的args(例如-g构建用于调试)。您还能够将其更改label为更具描述性。

您现在应该tasks.json在作业区.vscode文件夹中看到一个类似于以下内容的文件:

{
"version": "2.0.0",
"tasks": [
{
"label": "build hello world",
"type": "shell",
"command": "g++",
"args": [
"-g", "helloworld.cpp"
]
}
]
}

假如您期望能够运用“ 使命:运转构建使命”(⇧⌘B)构建运用程序,则能够将其增加到build组中。

{

"version": "2.0.0",

"tasks": [

{

"label": "build hello world",

"type": "shell",

"command": "g++",

"args": [

"-g", "helloworld.cpp"

],

"group": 王自健,我用VScode编写C / C ++代码三年才知道,成语词典{

"kind": "build",

"isDefault": true

}

}

]

}

有关使命的更多信息,请参阅经过使命与外部东西集成。

调试代码

要启用调试,您需求生成一个launch.json文件:

  • 单击弥补东西栏中的“调试”图标,导航到“调试”视图。在“ 调试”视图中,单击“ 装备”图标。从“ 挑选环境”下拉列表中挑选C++ (GDB/LLDB)(以运用GDB或LLDB)或C++ (Windows)(以运用Visual Studio Windows调试程序)。这将运用两种装备创立一个用于修正的文件: launch.jsonC ++ Launch界说了在开端调试时发动运用程序的特点。C ++ Attach界说了附加到现已运转的进程的特点。
  • program运用您正在调试的程序的途径更新该特点。假如您期望在开端调试时构建运用程序,请增加一个preLaunchTask特点,其间包括您在其间创立的构建使命的称号tasks.json(上例中的“构建hello world”)。

下面是运用MinGW GDB调试器的示例:

{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\mingw\\bin\\gdb王自健,我用VScode编写C / C ++代码三年才知道,成语词典.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for g王自健,我用VScode编写C / C ++代码三年才知道,成语词典db",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build hello world"
}
]
}

要了解更多信息,请参阅装备launch.json以进行C / C ++调试。

假如在Windows上运用GDB进行调试,请参阅运用GDB进行Windows调试。

修正代码

代码格局

Visual Studio Code的C / C ++扩展支撑运用扩展名顺便的clang格局进行源代码格局化。

您能够运用格局文档(⇧⌥F)格局化整个文件,也能够运用右键单击上下文菜单中的格局挑选(⌘K⌘F)格局化当时挑选。您还能够运用以下设置装备主动格局化:

  • editor.formatOnSa张阳大将ve - 保存文件时格局化。editor.formatOnType- 在键入时格局化(在;字符上触发)。

默许状况下,clang格局款式设置为王自健,我用VScode编写C / C ++代码三年才知道,成语词典“file”,史密斯威森熊爪这意味着它会.clang-forma搜搜课t在作业区内查找文件。假如.clang-format找到该文件,则依据文件中指定的设置运用格局。假如.clang-format作业区中未找到任何文件,则会依据C_Cpp.clang_format_fallbackStyle 设置中指定的默许款式运用格局设置。现在,默许格局款式是“Visual Studio”,它是Visual Studio中默许代码格局化程序的近似值。

“Visual Studio”clang格局款式还不是官方的OOTB clang格局款式,但它暗示了以下clang格局设置:

UseTab: (VS Code currentxuxuanrui setting)
IndentUncelWidth: (VS Code current setting)
BreakBeforeBraces: AllMan
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
ColumnLimit: 0

假如您要运用与扩展名顺便的格局不同的clang格局版别,则能够运用该C_Cpp.clang_format_path 设置并将其值设置为装置clang格局二进制文件的途径。

例如,在Windows渠道上:

"C_Cpp.clang_format_path": "C:\\Program Files (x86)\\LLVM\\bin\\clang-format.exe"

主动完结

主动完结由与Visual Studio相同的引擎供给支撑。当您的作业区装备了一切必需的包括途径和界说时,您将取得最相关的主张(请参阅上面的“装备IntelliSense”部分)。

导航代码

C / C ++扩展焦点访谈曝光徐鹤宁供给的源代码导航功用是了解和绕过代码库的强壮东西。这些功用由存储在符号信息的离线数据库中的标签供给支撑。装置了C / C ++扩展后,只要将包括C ++源代码文件的文件夹加载到VS代码中,就会生成此数据库。当符号解析器生成此信息时,数据库图标将显现在活动装备称号周围(下图中的“Win32”)。

当图标消失时,源代码符号已在脱机数据库中符号。

指定其他包括目录以取得更好的符号支撑

为了供给最佳体会,VS Code的C / C ++扩展需求知道它在哪里能够找到代码中引证的每个头文件。默许状况下,扩展名查找当时源目录,其子目录和郑敬渂某些特定于渠道的方位。假如找不到引证的头文件,VS Code会在引证它的每个#include指令下面显现绿色波形。

要指定要查找的其他包括目录,请将光标放在显现绿色波涛线的任何#include指令上,然后在呈现时单击灯泡操作。这将翻开文件c_cpp_properties.json进行修正; 在这里,您能够经过向“browse.path”属崔克敏性增加更多目录来独自为每个渠道装备指定其他包括目录。

查找符号

您能够在当时文件或作业区中查找符号,以便更快地导航代码。

要在当时文件中查找符号,请按⇧⌘O,然后输入您要沈墨浓查找的符号的称号。将显现潜在匹配列表,并在您键入时进行过滤。从匹配列表中挑选以导航到其方位。

要在当时作业空间中查找符号,请按⌘T,然后输入符号的称号。潜在匹配列表将如前所示。假如您挑选的文件没有翻开,则会在导航到匹配方位之前翻开该文件。

或许,假如您乐意,能够经过指令选项板拜访这些指令来查找初夏蔷薇涩符号。运用快速翻开(⌘P)然后输入'@'指令查找当时文件,或输入'#'指令查找当时作业区。⇧⌘O和⌘T别离仅仅'@'和'#'指令的快捷方法,所以一切都是相同的。

窥探界说

您能够运用Peek Definition功用快速检查符号的界说方法。此功用在窥探窗口内的界说邻近显现几行代码,因而您能够在不脱离当时方位的状况下检查。

要检查符号的界说,请将光标放在源代码中运用的任何方位的符号上,然后按⌥F12。或许,您能够从上下文菜单中挑选Peek Definition(右键单击,然后挑选Peek Definition)。

现在,C / C ++扩展不会以某种方法解析代码,以协助它依据符号的运用方法区别竞赛界说。当符号在不同的上下文中界说不同的事物时会呈现这些竞赛界说,例如在重载函数,类及其结构函数以及其他状况下发作。发作这种状况时,每个竞赛界说都列在窥探窗口的右侧,当时挑选的源代码显现在左边。

翻开窥探窗口,阅览竞赛界说列表以找到您感兴趣的界说。假如要导航到其间一个界说的方位,只需双击您感兴趣的界说,或许按双击检查窗口左边显现的源代码中的恣意方位。

转到界说

您还能够运用“转到界说”功用快速导航到界说符号的方位。

要转到符号的界说,请将光标放在源代码中运用的符号上,然后按F12。或许,您能够从上下文菜单中挑选“ 转到界说 ”(右键单击,然后挑选“ 转到界说”)。假如只要一个符号界说,您将直接导航到其方位,不然竞赛界说将显现在上一节中所述的检查窗口中,您有必要挑选要转到的界说。

调试

依照“ 入门”中的阐明设置调试环境的基础知识后,您能够在本节中了解有关调试C / C ++的更多详细信息。

VS Code支撑以下C / C ++调试器,详细取决于您运用的操作体系:

  • Linux:GDBmacOS:LLDB或GDBWindows:Visual Studio Windows调试器或GDB(运用Cygwin或MinGW)

运用GDB进行Windows调试

您能够运用王自健,我用VScode编写C / C ++代码三年才知道,成语词典VS Code调试运用Cygwin或MinGW创立的Windows运用程序。要运用Cygwin或MinGW调试功用,有必要在发动装备(launch.json)中手动设置调试器途径。要调试Cygwin或MinGW运用程序,请增加该miDebuggerPath特点并将其值设置为Cygwin或MinGW环境的相应gdb.exe的方位。

例如:

"miDebuggerPath": "c:\\mingw\\bin\\gdb.exe"

Windows上的Cygwin / MinGW调试支撑附加和发动调试计划。

条件断点

条件断点使您只要在条件的值为true时才干在特定代码行上中止履行王自健,我用VScode编写C / C ++代码三年才知道,成语词典。要设置条件断点,请右键mikkoukun单击现有断点,然后挑选“ 修正断点”。这将翻开一个小的检查窗口,您能够在其间输入有必要评价为true的条件,以便在调试期间射中止点。

在修正器中,条件断点由断点符号表明,断点符号内部有一个黑色等号。您能够将光标放在条件断点上以显现其条件。

功用断点

函数断点使您能够在函数的最初而不是在特定的代码行上中止履行伊人在线高清视频。要设置函数断点,请在“ 调试”窗格中右键单击“ 断点”部分,然后挑选“ 增加函数断点”并输入要在其上履行的函数的称号。

表达评价

VS Code支撑在几种状况下进行表达式评价:

  • 您能够在“ 调试”面板的“ 监督”部分中键入表达式,并在每次遇到断点时对其进行评价。您能够在调试操控台中键入表达式,它只会被评价一次。您能够在断点处中止时评价代码中呈现的任何表达式。

请留意,Watch部分中的表达式在正在调试的运用程序中收效; 修正变量值的表达式将在程序的持续时间内修正该变量。

多线程调试

VS Code的C / C ++扩展能够调试多线程程序。一切线程及其调用仓库都显现在“ 调用仓库”部分中:

内存转储调试

VS Code的C / C ++扩展还具有调试内存转储的才干。要调试内存转储,请翻开launch.json文件并将coreDumpPath(关于GDB或LLD绝色盲技师B)或dumpPath(关于Visual Studio Windows调试器)特点增加到C ++发动装备,将其值设置为包括内存转储途径的字符串。这乃至适用于在x64机器上调试的x86程序。

附加符号

假如存在调试器能够找到符号文件的其他目录(例如,.pdbVisual Studio Windows调试器的文件),则能够经过duozoulu增加additionalSOLibSearchPath(关于GDB或LLDB)或symbolSearchPath(关于Visual Studio Windows调试器)来指定它们。

例如:

"additionalSOLibSearchPath": "/path/to/symbols;/another/path/to/symbols"

要么

"symbolSearchPath": "C:\\path\\to\\symbols;C:\\another\\path\\to\\symbols"

找到源文件

假如源文件不在编译方位,则能够更改源文件方位。这是经过本sourceFileMap节中增加的简略替换对完结的。将康小虎运用此列表中的第一个匹配项。

例如:

"sourceFileMap": {
"/build/gcc-4.8-fNUjSI/gcc-4.8-4.8.4/build/i686-linux-gnu/libstdc++-v3/include/i686-linux-gnu": "/usr/include/i686-linux-gnu/c++/4.8",
"/build/gcc-4.8-fNUjSI/gcc-4.8-4.8.4/build/i686-linux-gnu/libstdc++-v3/include": "/usr/include/c++/4.8"
}

G孟加拉气候DB,LLDB和MI指令(GDB / LLDB)

关于C++ (GDB/LLDB)调试环境,您能够运用该指令直接经过调试操控台履行GDB,LLDB和MI指令-exec,但要当心,直接在调试操控台中履行指令是未经测验的,而且在某些状况下可能会导致VS Code溃散。

其他调试功用

  • 无条件断点调查窗口调用仓库步进

有关运用VS Code进行调试的更多信息,请参阅VS Code中的调试简介。

已知约束

符号和代码导航

一切渠道:

  • 由于扩展不解析函数体,所以Peek Definition和Go to Definition不适用于函数体内界说的符号。

调试

视窗:

  • Cygwin和MinGW上的GDB无法打破正在运转的进程。要在运用程序运转时设置断点(未在调试器下中止),或暂停正在调试的运用程序,请在应王自健,我用VScode编写C / C ++代码三年才知道,成语词典用程序终端中按Ctrl-C。Cygwin上的GDB无法翻开中心转储。

Linux的:

  • GDB需求提高权限才干附加到进程。运用attach进行处理时,需求在调试会话开端之前供给暗码。

IOS体系:

  • LLDB:运用LLDB进行调试时,假如在中止形式下封闭终端窗口,则调试不会中止。按“ 中止”按钮能够中止调试。中止调试时,终端窗口未封闭。
  • GDB:需求完结其他手动装置过程才干在macOS上运用GDB。见的OS X GDB的手动装置的自述。运用GDB附加到进程时,无法中止正在调试的运用程序。GDB将仅绑定运用程序未运转时设置的断点(在连接到运用程序之前或运用程序处当众tv于中止状况时)。这是由于GDB中的一个过错。运用GDB进行调试时无法加载中心转储,由于GDB 不支撑macOS中运用的中心转储格局。当运用GDB附加到进程时,break-all将完毕该进程。

下一步

请持续阅览以了解:

  • 根本修正 - 了解强壮的VS代码修正器。代码导航 - 快速阅览源代码。使命 - 运用使命来构建项目等调试 - 了解怎么在项目中运用调试器

常见问题

问:我的项目不会加载。

答: VS Code现在不支撑C ++项目文件,而是将您挑选的目录视为项目的作业区。该目录及其子目录中的源代码文件是作业区的一部分。

问:怎么构建/运转我的项目?

答: VS Code支撑您能够装备以构建运用程序的使命,而且本机地了解MSBuild,CSC和XBuild的输出。有关更多信息,请参阅使命文档。

假如您有任何其他问题或遇到任何问题,请在谈论上提出问题。

重视私信我“材料”,获取C++高档进阶材料,喜爱能够保藏再转发.

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。