首页 > 编程语言 >vscode 配置c/c++环境,无法生成 *.exe文件

vscode 配置c/c++环境,无法生成 *.exe文件

时间:2024-04-25 14:56:56浏览次数:38  
标签:exe vscode c++ json tasks main type 调试

【问题】:

        使用vscode配置c/c++环境时,提示无法构建失败。

 

【解决方案】:

        1. 当前结合网上找的资料已经检查过,tasks.json和launch.json文件,并无配置错误。

        2. F5调试时,终端输出错误调试信息如下:

启动调试任务时,执行了2条命令。

1)cmd /c chcp 65001>nul      (查了下好像是字符乱码相关)

2)D:\Programs\mingw64\bin\gcc.exe -fdiagnostics-color=always -g F:\Data\code\vsc_template\main.c -o F:\Data\code\vsc_template\main.exe  (真正的编译脚本)

在终端单独执行2)的脚本,可以在工作区正常生成 main.exe, 此时再按F5调试,可以正常设置断点并进行调试任务。

由此断定,launch.json文件没有问题,问题出在tasks.json中。因为tasks.json任务没有生成 main.exe, 因此luanch.json 报错,找不到main.exe文件。

        3. 核查tasks.json配置如下:

 

根据2中终端中打印的错误信息,因为能正确生成编译脚本,所以可知3 "command" 和 4"args"正确执行,问题出在1"type" 和2"label"上。2"label"仅仅是一个字符标识,只要保证launch.json中和这个字段保持一致即可。因此确认,问题出在1"type"上,cppbuild命令不对。

        4. 编译"type"字段,vscode自动提示该字段有3个可选值,如下图:

 

将"type"值修改为 "shell",如下:

F5再次启动调试,终端调试命令如下:

对比2中终端输出信息,此时只有编译脚本。此时可以正常启动调试信息。

【总结】

1.vscode配置c/c++环境,无法调试时,先检查 tasks.json和launch.json文件配置。

2.注意终端窗口输出的指令信息。

3.本文的问题是因为,tasks.json文件中,启动指令错误导致,将"type"字段的值,从"cppbuild"修改为"shell", 可以正常启动编译调试。

标签:exe,vscode,c++,json,tasks,main,type,调试
From: https://www.cnblogs.com/TheShore/p/18157701

相关文章

  • Git runner 返回报错: status=couldn't execute POST against dial tcp: lookup gitlab
    当发现Gitlab上的runner显示出runneroffline的问题时1查一下gitrunner的报错runner=xxxxstatus=couldn'texecutePOSTagainsthttps://gitlab/api/v4/jobs/request:Posthttps://gitlab/api/v4/jobs/request:dialtcp:lookupgitonx.x.x.x:53:servermisbehaving......
  • window下使用vscode和cmake开发编译cpp代码
    window下使用vscode和cmake开发编译cpp代码1.先准备cpp编译环境还是要先使用vscode和mingw搭建好cpp开发环境,因为cmake不是一个编译工具,它只不过是根据CMakeLists.txt文件生成Makefile文件,Makefile文件再通过make规则使用gcc、g++等工具去实践编译代码。使用vscode和mingw......
  • C++数组的连续性
    虚拟上连续,物理上大概率连续,除非不在同一个物理页上,并且物理页不连续时数组在物理地址空间是否连续,对于用户空间的程序是不需要关心的。另外,对于一个抽象层次很高的编程语言,数组是不是一定要保证虚拟地址空间连续,感觉也是可以研究的。例如,java的数组就不连续?所以array到底是在......
  • Qt/C++音视频开发71-指定mjpeg/h264格式采集本地摄像头/存储文件到mp4/设备推流/采集
    一、前言用ffmpeg采集本地摄像头,如果不指定格式的话,默认小分辨率比如640x480使用rawvideo格式,大分辨率比如1280x720使用mjpeg格式,当然前提是这个摄像头设备要支持这些格式。目前市面上有一些厂家做的本地设备支持264格式,这个压缩率极高,由于采集到的就是264格式的裸流,所以不用编码......
  • C++基础 变量和基本类型
    一个char类型的大小和一个机器字节一样。char在实现的时候会是unsignedchar和signedchar当中的一种,这与机器有关。wchar_t,char16_t,char32_t为国际化提供支持,这几种字符的字面值需要加前缀。C++标准规定数据的宽度:short<=int<=long<=longlong.当unsignedint和int进行运......
  • C++多态与虚拟:函数重载(Function Overloading)
    重载(Overloading):所谓重载是指不同的函数实体共用一个函数名称。例如以下代码所提到的CPoint之中,有两个memberfunctions的名称同为x():1classCPoint{23public:4floatx();5voidx(floatxval);67};  其两个memberfunctions实现代码如下:1f......
  • 笔记/C++中的数组排序
    在C++中,std::sort函数是一个用于对容器(如数组、向量等)进行排序的通用算法。它定义在<algorithm>头文件中,并接受两个迭代器参数,分别指向要排序的范围的开始和结束位置。此外,std::sort还可以接受一个可选的比较函数或lambda表达式,用于自定义排序规则。以下是std::sort函数的基本用......
  • MoUsoCoreWorker.exe 是 Windows 操作系统中的一个进程,它属于 Microsoft Update Stack
    MoUsoCoreWorker.exe是Windows操作系统中的一个进程,它属于MicrosoftUpdateStack的一部分,用于处理Windows更新和维护任务。具体来说,MoUsoCoreWorker.exe是WindowsUpdate的核心工作程序,负责检查、下载和安装操作系统和应用程序的更新。这个进程通常位于Windows......
  • mpcmdrun.exe 是 Windows Defender 的命令行界面工具,用于运行 Windows Defender 的扫
    mpcmdrun.exe是WindowsDefender的命令行界面工具,用于运行WindowsDefender的扫描和其他安全操作,如更新病毒定义文件、运行快速扫描等。它是WindowsDefender的一部分,用于保护系统免受恶意软件和其他安全威胁的侵害。这个程序通常自动运行,并在后台处理安全任务,以......
  • RuntimeBroker.exe 是 Windows 操作系统中的一个系统进程,它负责管理 Metro 应用程序(现
    RuntimeBroker.exe是Windows操作系统中的一个系统进程,它负责管理Metro应用程序(现在称为UniversalWindowsPlatform应用程序)的权限和沙盒环境。该进程通常在用户登录后启动,并且对于每个用户会话都会有一个实例在运行。具体来说,RuntimeBroker主要有以下作用:权限管......