2021年的vscode调用msvc来编译C/C++
首先你得有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,
也就是再终端运行
推荐阅读: