«

2021年的vscode调用msvc来编译C/C++

学长 发布于 阅读:1386 编程


首先你得有vs2019并且安装了最基础的C语言编译环境也就是msvc

vs2019 的编译器是msvc

路径是C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC

而vscode 的code runner是调用gcc的

也就是说。。。

必须调用mingw

或者用c/c++那个编译器

根据这个里面写的

Configure Visual Studio Code for Microsoft C++

你得通过cmd来手动折腾生成个类似于项目文件的json文件

所以这就是微软卖vs年份酒的套路么???

我们就要败给万恶的小布尔乔亚了么???

(装了vc年份酒才有msvc的好不好)

所以要针对msvc专门改自定义命令

参见此文章

vscode+coderunner+MSVC测试cpp代码 - ibasaw - 博客园

cmd这招现在没这么好用了。。。

这文章是原创么???

这样的文章大多是从某G上抄来的

那我去某G上炒最新的给你就好了

==========================================================

很显然网上目前流行的都是原来

调用Developer Command Prompt for VS 2019

然后通过追加指令来形成obj并删除的套路来运行的

目前Developer PowerShell for VS 2019早已存在

所以思路就是直接调用ps

Configure coderunner for C++ Build Tools(MSVC) · Issue #330 · formulahendry/vscode-code-runner

根据上述思路

"code-runner.executorMap": {
"c": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process pwsh -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",
"cpp": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process pwsh -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",
},

384a17e6这个数字是根据你具体的

搜索中找到的

Developer PowerShell for VS 2019 右击打开所在位置,再右击属性

看到目标中的那串对应的实际位置和代码的

当然如果你想保留.obj可移除代码

del $fileNameWithoutExt.obj &&

问题是

他写的时候powershell可以省略pwsh,现在不可以了,具体看你系统。。。我的系统是win11

就得改成

"code-runner.executorMap": {

"c": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process powershell -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",

"cpp": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; cl $fileName && del $fileNameWithoutExt.obj && Clear-Host && Start-Process powershell -ArgumentList \"-Command &{.\\$fileNameWithoutExt; pause}\"",

},

或者不要弹出运行在终端窗口就这么写

"code-runner.executorMap": {

"c": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; Clear-Host && cl $fileName && del $fileNameWithoutExt.obj && .\\$fileNameWithoutExt",

"cpp": "Import-Module \"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/Microsoft.VisualStudio.DevShell.dll\"; Enter-VsDevShell 384a17e6; cd $dir; Clear-Host && cl $fileName && del $fileNameWithoutExt.obj && .\\$fileNameWithoutExt",

},


json设置脚本自己用tab健对齐

具体json的位置是文件-首选项设置-设置

然后搜code runner

点击任意一个编辑settings.jason

然后再原来的打括号里添加上面的编码

还有就是得打开

"code-runner.runInTerminal": true,

也就是再终端运行


推荐阅读:


扫描二维码,在手机上阅读