首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VSCode中,无法使用launch.json中的args将命令行参数传递给使用cmake的C++项目。

在VSCode中,无法使用launch.json中的args将命令行参数传递给使用cmake的C++项目。
EN

Stack Overflow用户
提问于 2022-02-03 21:47:31
回答 1查看 1K关注 0票数 0

我使用VSCode来调试使用CMake工具配置和构建的C++项目(在VScode中的扩展)。

我必须使用下面的命令来触发执行:./cbs_ta -i ifile.yaml -o ofile.yaml

如您所见,有两个命令行输入(输入文件的-i和文件名) (-o和输出文件的文件名)。我在launch.json中看到,使用"args“参数,我们可以传递命令行参数。因此,我在launch.json中修改了"args“如下:"args": ["-i", "ifile_1.yaml", "-o", "ofile_1.yaml"],

不幸的是,我得到的错误是the option '--input' is required but missing

我使用CMake Tools扩展来配置和构建目标。

请帮帮忙。

编辑:--当我在VSCode中的CMake中单击" debug“菜单选项时,调试会话将启动,但它没有考虑到launch.json。我识别了它,因为我保留了‘“stopAtEntry:true’,但它并没有停留在入口点。

EN

回答 1

Stack Overflow用户

发布于 2022-08-21 23:44:52

听起来,您似乎遇到了CMake工具扩展在工具栏上放置的令人困惑的“额外”调试按钮。C/C++扩展的主调试器(通过'launch.json‘配置)需要使用左侧面板中的“debug”视图调用

(就像其他调试扩展,如cortex)。

一旦选择了调试配置,就会将调试启动按钮添加到状态栏中。这意味着CMake工具扩展的用户将在状态栏上有两个不同的调试按钮,至少可以这么说。部分原因可能是由于这种混乱,CMake工具扩展有一些选项可以放在'settings.json‘中,以删除它添加到状态栏中的按钮,或者有选择地或者全部放在一起。如果您不需要经常使用工具链选择器之类的东西,这也是恢复相当多的状态栏房地产的有用方法。

要删除CMake工具添加的所有按钮,请执行以下操作:

代码语言:javascript
运行
复制
    "cmake.statusbar.visibility": "hidden"

并有选择地删除调试启动按钮:

代码语言:javascript
运行
复制
    "cmake.statusbar.advanced": {
        "debug": {
            "visibility": "hidden"
        }
    }

我希望大多数用户更喜欢选择选项,因为像构建目标选择器这样的东西对于大多数用例来说都是非常重要的。

这里的根本问题是,由于某种原因,CMake工具扩展没有使用标准的扩展点来调试功能,而是在状态栏上放置了一个额外的按钮来直接调用调试,而没有在'launch.json‘中的配置条目。CMake工具扩展文档将其描述为一个“快速”调试功能,这表明他们做出此设计决策的原因与不同的用例有关,尽管我个人并不能真正看到它的一个明确的用例。调试本质上是一种高度依赖于配置的活动,因为在大多数情况下,从选择实际的调试程序到向下调试程序的所有内容都需要指定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70978738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档