在Visual Studio代码中,“运行C/C++文件”、“运行代码”和“运行C/C++代码”按钮之间有什么区别?

ymzxtsji  于 5个月前  发布在  C/C++
关注(0)|答案(1)|浏览(85)

我正在尝试设置Visual Studio Code,以便能够编译和运行C文件。我得到了所有工作,但我有5个不同的选项来“运行”文件,其中只有一个产生输出到终端。
3个按钮/选项的图片:x1c 0d1x
“删除C/C
文件”和“运行C/C++代码”按钮似乎在做同样的事情。还有另外两个按钮似乎在做同样的事情。
其他2个按钮:

“运行代码”按钮,如第一张图所示,是终端中唯一产生输出的按钮。这5个不同的按钮之间有什么区别?为什么只有一个按钮产生输出?
我已经在VSC设置中启用了“在集成终端中运行代码”,但这并没有改变任何东西。

ddarikpa

ddarikpa1#

“运行代码css +alt+N”来自formulahendry.code-runner

它在当前活动的文件/编辑器选项卡中构建程序,然后在没有/没有调试器的情况下运行它。您可以使用code-runner.executorMap配置设置来配置它的功能。
评论/警告:这个扩展实现得很差(shell转义和引用,编译器选择等),当你有the cpptools extension时就不需要了。

“运行C/C文件”和“删除C/C文件”来自the cpptools extension

C/C++扩展(cpptools)提供了另外两个选项。名称中带有“调试器”的选项在调试器下运行当前文件。另一个选项在没有调试器/没有调试器的情况下运行当前文件。如果您在命令面板中运行C/C++: Run C/C++ File/C/C++: Debug C/C++ File,它们具有相同的效果。

如果您没有配置构建任务或启动配置

单击运行/调试按钮将提示您“选择调试配置”,此时它将提供一个内置/检测到的启动配置列表,可用于基本调试目的,如下所示:
C/C++:构建和调试活动文件(preLaunchTask:C/C++构建活动文件)
检测到的任务:(编译器:)
选择你想要使用的编译器。程序将运行(如果你选择使用调试器运行),两个integrated terminal示例将被创建/使用-一个用于构建任务(“preLaunchTask”),名为“build active file”,另一个用于运行你的程序,名为“cppdbg:“。

如果您配置 * 一个匹配的默认 * 构建任务,并且没有启动配置

例如,在tasks数组属性中的tasks.json下:

{
   // https://code.visualstudio.com/docs/cpp/launch-json-reference
   "type": "cppbuild",
   "label": "starball's g++ compile-active-file task",
   "command": "/usr/bin/g++",
   "args": [
      "-Wall", "-Wextra", // warnings
      "-g", // build with debug info
      "-fdiagnostics-color=always", // colour! :D
      "${file}", // source file to compile
      "-o", "${workspaceFolder}/build/${fileBasename}" // output file. see also fileBasenameNoExtension
      // https://code.visualstudio.com/docs/editor/variables-reference
   ],
   "options": {
      "cwd": "${workspaceFolder}" // not really necessary
   },
   "problemMatcher": ["$gcc"],
   "group": {
      "kind": "build",
      "isDefault": "**/*.{cpp,cxx}" // adjust globbing as needed
   },
   "detail": "output file goes under ./build/"
},

字符串
然后运行按钮和相应的命令将只使用该构建任务和适合它的通用启动配置。你很可能希望构建任务不硬编码特定的文件名,除非你希望运行按钮或相应的命令只运行/调试一个特定的文件,而不管当前关注/活动的文件是什么。
如果有 * 多个 * 任务注册到构建组并与当前文件匹配,那么系统将提示您选择一个(而不是cpptools任意假定您想要使用哪一个)。

如果使用启动配置

答案和上面的差不多。如果你有一个默认的构建任务,则使用该任务作为其preLaunchTask的第一个启动配置。如果没有默认的构建任务,或者默认的构建任务是在the user-level tasks.json file中定义的,则会提示你使用哪个启动配置。

相关问题