我想在Visual Studio中检索编译器cl.exe
的完整路径,以便从程序中调用它。我们在注册表中是否有密钥?怎么做?
答案 0 :(得分:6)
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位
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VC7
HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\SxS\VC7
如果为当前用户安装了VS 64位
答案 1 :(得分:1)
我建议使用MS自己的工具来定位cl.exe。我过去曾经使用过它,它也可以用于新版本的VisualStudio。