即使通过开发人员命令提示符打开 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.jsonc_cpp_properties.json 的构建问题中解决此问题 我将文件添加到帖子中。你认为可以做什么? "command": "cl.exe", 应该有 cl.exe 的完整路径,就像你在 c_cpp_properties.json 中一样 虽然解决了识别cl 的问题,但它仍然缺少包含文件的路径变量,例如iostreamvector。根据帖子中链接的文档,我不应该做所有这些。 【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令提示符打开 VS Code?

如何用命令行让vscode打开文件

在终端中使用vscode打开文件或者文件夹

适合前端开发人员的vscode扩展插件都有哪些?

将 Visual Studio 的开发人员命令提示符添加到 Windows 终端?

如何用vscode开发.net网站