首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索到cl.exe的路径?

问如何检索到cl.exe的路径?
EN

Stack Overflow用户
提问于 2018-06-07 11:16:26
回答 1查看 12.4K关注 0票数 9

我想在Visual中检索编译器cl.exe的完整路径,以便从程序中调用它。我们在注册表里有这方面的钥匙吗?该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 15:54:54

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

下面是如何在这个批处理脚本中完成这个任务:

代码语言:javascript
复制
: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位

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

64位

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

然后,您将为每个已安装的版本提供字符串。这是我的机器上的样子:

​

​

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50739853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档