vscode无法vs编译的时候运行第三方exeexe文件

不值得观看的v1.x版本链接:
请不要轉载欢迎点赞,收藏分享


主要讲如何在vscode上实现编译/vs编译的时候运行第三方exe/调试C以及C++,如果是初学者就请完全按照文章的步骤进行,洳果觉得图片不够清晰点击一下图片会显示清晰的大图

  1. 首先在下载并安装好visual stdio code,建议在安装时将选项全勾选上

勾选后在文件和文件夹的右鍵菜单中会多出 Open with Code这个选项也就是用vscode打开当前文件/文件夹

2. 因为vscode只是一个代码编辑器,没有自带有C/C++的编译器因此首先需要安装一个C/C++编译器並且设置环境变量,这里使用因为网络问题mingw-w64很难下载,建议离线下载然后手动添加环境变量

为节省篇幅具体的细节参见


此时我们要驗证一下mingw是否可用,打开cmd输入gcc -v出现版本信息就表明mingw是可用的,如果未出现版本信息则需要再检查一下如果这里出现问题,后面全部无法进行

3. 安装必要的插件打开vscode,点击左面竖排第五个按钮搜索并安装上如下三个插件

安装好以后重启一下vscode,界面切换为中文为了避免麻烦,暂时不要安装其他插件


编译vs编译的时候运行第三方exe程序介绍两种方法

  1. 使用之前安装好的Code Runner插件一键编译vs编译的时候运行第三方exe程序
  2. 打開vscode的集成终端使用命令行编译和vs编译的时候运行第三方exe

点击:文件>新建文件出现一个空白文档,将下面的代码复制粘贴到空白文档中

然後按Ctrl+S将文件后缀名改为.c.cpp后保存到电脑上然后点右上角的三角形按钮

但现在会出现下面的情况

程序段中使用了scanf函数从键盘读取一串字符,这时无法输入数据也无法结束程序,需要重启一下vscode

现在程序已经可以正常vs编译的时候运行第三方exe了此时程序是vs编译的时候运行第三方exe在vscode的集成终端上,并不会额外弹出一个外部窗口

点击右上角的垃圾桶图标可以直接结束程序vs编译的时候运行第三方exe并关闭集成终端


用插件vs编译的时候运行第三方exe程序是一种偷懒的方法它本质是替用户输入了命令,它存在局限看一个例子

假设说我们在代码中使用了 winsock2.h这个頭文件,我们用刚刚的Code Runner插件的方式编译会无法通过

造成问题是原因是:Code Runner是按照预先设定好的规则自动在终端执行编译vs编译的时候运行第彡方exe的指令,也就是图片上红色下划线标注出的

如果是使用了winsock2.h同时又是使用gcc/g++编译,在编译时我们应该在编译指令中额外添加-lwsock32指令而Code Runner默認下并不会添加这条指令

正确的编译指令应该是:

为了解决这个问题,可以使用比较原始的方法直接在终端上用命令行编译和vs编译的时候运行第三方exe,vscode有一个集成终端可以连通安装在操作系统上的各种终端

Ctrl+~ 打开集成终端(其实是"`",打"~"是方便大家找到)输入


当程序遇箌bug,我们可以单步调试来定位错误vscode支持添加断点,添加监视显示鼠标指向变量的值,调试控制台查询变量值详细细节我录制了一个演示视频(内容是快速排序)

更加高清的视频可以看上传到b站的版本

首先在电脑上的某个你习惯的位置新建一个文件夹(工作区),用于存放将要编写的代码接下来配置好的调试环境,仅会对存放在这一个文件夹以及文件夹的子目录里的程序生效

务必注意!调试的文件名文件路径中不能出现中文字符!!否则将无法启动调试!
这是由于调试用到的mingw中的gdb不支持中文路径!和vscode无关下面是两个错误示范

新建恏文件夹后,在vscode界面点击:文件>打开文件夹,用vscode打开刚刚新建的文件夹(安装时勾选了右键打开可以直接右键选通过code打开

在vscode资源管理器点击新建文件夹图标新建一个.vscode文件夹(注意前面的"."号)

然后在.vscode文件夹下新建两个json文件分别叫做

然后将下面的代码复制到对应的json文件中去並保存要仔细阅读后面两段说明性文字

如果需要是c语言也就是gcc将下面的command项由g++改为gcc
如果是多文件编译(即函数声明和函数定义分开,不懂嘚别乱改)需要将args列表中的"${file}"项修改为"${workspaceFolder}/*.cpp" ,多文件推荐用cmake

事实上现在已经可以正常调试了并且现在可以按 ctrl+shift+b 直接调用配置好的task编译而不vs编译嘚时候运行第三方exe程序,类似于一些IDE的编译选项

测试一下新建一个.cpp文件将下面的代码粘贴进去,并在适当的地方添加上断点

f5或者启动調试的按钮启动调试程序执行到断点处会停下

  1. 继续执行到下一个断点处
  2. 执行下一条语句,遇到函数直接执行完不会跳转进函数
  3. 执行下一條语句遇到函数会跳转进函数继续单步执行
  4. 跳出当前所在的函数,如果是主函数会结束程序

集成终端在底部终端栏输入数据如果是希朢像vs2019一样,启动调试后显示外部窗口而不是在vscode集成终端进行调试

在单步调试的过程中我们可以添加监视来实时监视变量或表达式值的变化

吔可以在调试控制台中输入想获取结果的变量名或者表达式获得当前的值

或者直接将鼠标光标移动到变量位置上会自动显示当前变量的徝

如果数组开得过大或者是一些结构较复杂的类或结构体,查询或显示值可能会导致调试程序崩溃

强调:调试是属于工作区设置当前配置的调试环境只会对当前.vscode文件夹所在路径下的文件生效,如果要换用别的文件夹可以直接把.vscode这个文件夹拷贝过去

如果是需要有额外的编譯指令如-lwsock32,需要调试前事先在tasks.json的args处添加上对应的指令,或者用 // 注释掉launch.json中的 preLaunchTask:"compile"(启动调试前执行编译任务) 这一项,然后自己编译好后再执行调试,也可鉯直接使用cmake
对于安装了vs2019却使用mingw的情况这时vscode代码检测会默认使用vs2019的msvc编译器的头文件,如果你使用mingw独有的特殊头文件会报找不到头文件的错誤
鼠标移动到报错头文件会显示一个灯泡,点击选编辑"includePath"设置,然后在指定编译器下拉列表中选择gcc或者g++
PowerShell作为默认终端时虽然不存在clear的問题,但如果往终端输入了任何数据或指令又没有按回车就直接关闭了同样会造成vscode无响应
WSL没有发现类似的bug
文章的核心内容均参考微软官方文档mingw部分

在评论区或者私信里向我提问的人,大部分问题我都会在摸鱼时回复但对于文章里已经写的很明白的以及抄别人文章有问题(不是一个两个了)跑来问我的,我一般是不回复的

}
  • 其实你刚才创建的C++文件根本在笁程里它只是个 “缓存” 文件,当你关闭VS去保存这个文件的时候这个文件就被销毁了。 下面来解决这个问题按Ctrl + S进行保存,也可以茬文件选项卡下保存: 保存界面如下:...

  • 下午再打开电脑发现我的vscode变成了快捷方式无效的样子,类似于文本文档那样点击的时候,就说code.exe找不到快捷方式无效,我就删掉它了 然后我打开我vscode的安装目录,找到了code.exe文件重新生成了...

  • 点击【确定】后,又弹出一个窗口内容是蕗径错误,找不到code.exe 错误原因: 之前一定是更改了vscode的安装目录 解决方法: 将code.exe应用程序复制到安装目录下。 参考文章 vscode更新失败的解决 ...

  • 由于更妀安装目录会导致VScode更新程序找不到目标文件夹最终发生错误无法更新。Error会有两个弹窗第一个弹窗会写到failed due to antivirus software(印象里只记得这一点了哈哈),第二个弹窗会提示找不到路径...

  • 总体流程: ...进入官网点击下载安装器 mingw-get-setup.exe(找不到的话请搜索) 配置环境变量:把F:\MinGW\bin添加进系统path(路径按你自己嘚安装做更改) 选中几个需要的项右键Make for Install

  • 使用electron时调用了nodejs模块,在vscode调试时没有问题打成exe包后vs编译的时候运行第三方exe报找不到module的erro。这个错误昰因为打包时没有把使用的module编译解决办法是手动在package.json文件中dependencies里添加使用的模块...

  • 解决exe文件找不到找不到任务gcc效果就是可以debug啦 基本步骤 搭建C++环境 关于环境搭建可以看看上文的参考文章2,或者其他mingw环境的安装 搭建debug环境 经过多方资料查证C++的debug环境和Java等语言...

  • 因为之前为了节省C盘空间,紦VScode安装到了别的盘更新时就会出现“找不到特定文件以完成删除”的提示,一开始以为是后台没关掉结果确保后台把VScode关掉后,仍然出現这个提示按了取消后,当前版本的VScode就...

  • 个人觉得还是Eclipse +插件的模式好可惜想调试Beego项目的时候,会报找不到资源因为Eclipse调试使用的是install方式,会把.exe拷贝到src的同一级bin目录下所以资源文件等,使用的是相对路径就找不到了不知道...

  • 这个错误的意思是需要加载对应的库文件找不到,加载对应的库文件就习 但是单元测试又不想把所有的依赖都考到对应的目录下面,就用环境变量 因为vscode用的是powershell 与之前的cmd.exe又不太一样 cmd只需要...

  • 自从换了一个poker键盘之后,对vim的热情递增终于一个时间,静下心来折腾一下vim在window下使用vim着实蛋疼,不过前端开发要求高之前用sublime,vscode其实也没用什么牛逼的插件将就着用吧。...

}

我要回帖

更多关于 vs打包exe 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信