即使通过开发人员命令提示符打开 VSCode 也无法识别 CL
Posted
技术标签:
【中文标题】即使通过开发人员命令提示符打开 VSCode 也无法识别 CL【英文标题】:VSCode doesn't recognize CL even after being opened through Developer Command Prompt 【发布时间】:2020-07-21 12:50:20 【问题描述】:我正在尝试使用cl
使用 VSCode 构建 C++,VSCode docs(以及互联网上的大多数资源)指示最简单的方法是通过随附的开发人员命令提示符打开 VSCode使用 Visual Studio 或 Visual C++ 构建工具:
然后在 VSCode 的终端中:
cl
仍然无法识别。我不知道该怎么做,但感觉好像我没有做我应该做的事情。
提前致谢。
tasks.json 和 c_cpp_properties.json 文件内容:
tasks.json:
"version": "2.0.0",
"tasks": [
"type": "shell",
"label": "C/C++: cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"$fileDirname\\$fileBasenameNoExtension.exe",
"$file"
],
"options":
"cwd": "$workspaceFolder"
,
"problemMatcher": [
"$msCompile"
],
"group":
"kind": "build",
"isDefault": true
,
]
c_cpp_properties.json:
"configurations": [
"name": "Win32",
"includePath": [
"$workspaceFolder/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "D:/Programas/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
],
"version": 4
【问题讨论】:
看起来在 powershell 中运行时 cl 不在路径中。 我希望您可以在tasks.json
和 c_cpp_properties.json
的构建问题中解决此问题
我将文件添加到帖子中。你认为可以做什么?
"command": "cl.exe",
应该有 cl.exe 的完整路径,就像你在 c_cpp_properties.json 中一样
虽然解决了识别cl
的问题,但它仍然缺少包含文件的路径变量,例如iostream
和vector
。根据帖子中链接的文档,我不应该做所有这些。
【参考方案1】:
我发现使用编译工具的方式是使用“Visual Studio 2019 Developer Powershell”。为此,我写了以下几行
("terminal.integrated.shell.windows"
、"terminal.integrated.shellArgs.windows"
和 "terminal.integrated.automationShell.windows"
):
"workbench.colorTheme": "Default Dark+",
"editor.fontFamily": "CaskaydiaCove NF, Consolas, 'Courier New', monospace",
"terminal.integrated.shell.windows": "$env:USERPROFILE\\.dotnet\\tools\\pwsh.exe",
"terminal.integrated.shellArgs.windows": [
"-noe",
"-c",
"\"& $installDir='D:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools'; Write-Host Using $installDir; Import-Module ($installDir + '\\Common7\\Tools\\Microsoft.VisualStudio.DevShell.dll'); Enter-VsDevShell -VsInstallPath $installDir; Set-Location '$workspaceFolder' \""
],
"terminal.integrated.automationShell.windows": null,
或者这样:
"terminal.integrated.profiles.windows":
"PowerShell":
"source": "PowerShell",
"icon": "terminal-powershell"
,
"Command Prompt":
"path": [
"$env:windir\\Sysnative\\cmd.exe",
"$env:windir\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
,
"Git Bash":
"source": "Git Bash"
,
"Developer PowerShell":
"path": [
"$env:USERPROFILE\\.dotnet\\tools\\pwsh.exe"
],
"args": ["-noe",
"-c",
"\"& $installDir='D:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools'; Write-Host Using $installDir; Import-Module ($installDir + '\\Common7\\Tools\\Microsoft.VisualStudio.DevShell.dll'); Enter-VsDevShell -VsInstallPath $installDir; Set-Location '$workspaceFolder' \""
],
"icon": "terminal-powershell"
,
,
【讨论】:
以上是关于即使通过开发人员命令提示符打开 VSCode 也无法识别 CL的主要内容,如果未能解决你的问题,请参考以下文章