如何检索 cl.exe 的路径?

2023-12-30

我想检索编译器的完整路径cl.exe在 Visual Studio 中从程序中调用它。我们在注册表中是否有相应的密钥?怎么做?


cl.exe通常位于%VCINSTALLDIR%\bin\. VCINSTALLDIR默认情况下未设置环境变量,但在打开 Visual Studio 的本机工具命令提示符时会设置它。

以下是该批处理脚本中的完成方式:

:GetVCInstallDir
@set VCINSTALLDIR=
@call :GetVCInstallDirHelper32 HKLM > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper32 HKCU > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper64  HKLM > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper64  HKCU > nul 2>&1
@exit /B 0

:GetVCInstallDirHelper32
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "14.0"') DO (
    @if "%%i"=="14.0" (
        @SET VCINSTALLDIR=%%k
    )
)
@if "%VCINSTALLDIR%"=="" exit /B 1
@exit /B 0

:GetVCInstallDirHelper64
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "14.0"') DO (
    @if "%%i"=="14.0" (
        @SET VCINSTALLDIR=%%k
    )
)
@if "%VCINSTALLDIR%"=="" exit /B 1
@exit /B 0

因此,根据系统的位数,它会查看这些注册表项之一

32-bit

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VC7如果 VS 安装在系统范围内
  2. HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\SxS\VC7如果当前用户安装了VS

64-bit

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7如果 VS 安装在系统范围内
  2. HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7如果当前用户安装了VS

然后你就有了每个已安装版本的字符串。这是它在我的机器上的样子:

如果您不知道想要什么版本,则需要额外的工作才能以编程方式检索正确的值,但这超出了此问题的范围。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检索 cl.exe 的路径? 的相关文章

随机推荐