Я установил инструменты сборки Visual 2017 C ++. Я пытаюсь запустить vsdevcmd
, чтобы подготовить среду. Но я получаю сообщение об ошибке, в котором говорится, что инструменты VC ++ не установлены, если они действительно.
Ниже приведена ошибка, которую я получаю:
[DEBUG:vcvars.bat] Could not find VC++ tools version "14.16.27023" under "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\".
[DEBUG:ext\vcvars.bat] init:COMPLETE
[DEBUG:core\vsdevcmd_end] initializing with arguments ''
[ERROR:VsDevCmd.bat] *** VsDevCmd.bat encountered errors. Environment may be incomplete and/or incorrect. ***
[ERROR:VsDevCmd.bat] In an uninitialized command prompt, please 'set VSCMD_DEBUG=[value]' and then re-run
[ERROR:VsDevCmd.bat] vsdevcmd.bat [args] for additional details.
[ERROR:VsDevCmd.bat] Where [value] is:
[ERROR:VsDevCmd.bat] 1 : basic debug logging
[ERROR:VsDevCmd.bat] 2 : detailed debug logging
[ERROR:VsDevCmd.bat] 3 : trace level logging. Redirection of output to a file when using this level is recommended.
[ERROR:VsDevCmd.bat] Example: set VSCMD_DEBUG=3
[ERROR:VsDevCmd.bat] vsdevcmd.bat > vsdevcmd.trace.txt 2>&1
[DEBUG:VsDevCmd] Writing post-execution environment to C:\Users\KRAFTW~1\AppData\Local\Temp\dd_vsdevcmd15_env.log
[DEBUG:VsDevCmd.bat] --------------------- VS Developer Command Prompt Environment [post-init] ---------------------
Вот сообщение об ошибке 3 уровня этой конкретной ошибки:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC>if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\" (
set "VCToolsInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\"
set "VCToolsVersion=14.16.27023"
) else (
set VCToolsInstallDir=
if "3" GEQ "2"
goto :end
)
[DEBUG:vcvars.bat] Could not find VC++ tools version "14.16.27023" under "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\".
Этот каталог существует, потому что я скопировал и вставил путь и смог перейти в этот каталог. Используя проводник, я также вижу, что точная версия существует, и в ней есть все ожидаемые инструменты (как видно на рисунке ниже)
Есть идеи, в чем может быть проблема?
Редактировать
Как отметил Ганс в комментарии, в начале имени файла есть дикий символ 14.16.27023
.
По выводу загружается путь отсюда: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC>set "__VCVARS_DEFAULT_CONFIG_FILE=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt"
Я проверил этот файл, и он содержит следующее (без лишних символов):
Также просматривается в шестнадцатеричном редакторе, и там ничего нет:
Я проверил файл vcdevcmd.bat
, и он не работает:
@REM *****************************************************************
@REM This section executes all .bat files found in vsdevcmd\ext.
@REM Any "leaf node" script should be placed in this directory.
@REM A few notes:
@REM * For determinism sake, the scripts are called in alphabetical
@REM order.
@REM * This section does NOT recursively look in sub-directories
@REM under vsdevcmd\ext. Sub-directories may be used for
@REM "implementation detail" scripts called by .bat files in the
@REM vsdevcmd\ext folder.
@REM *****************************************************************
@REM Iterate through ext scripts
if NOT EXIST "%VS150COMNTOOLS%vsdevcmd\ext\" (
@echo [ERROR:%~nx0] Cannot find 'ext' folder "%VS150COMNTOOLS%vsdevcmd\ext\"
set /A __vscmd_vsdevcmd_errcount=__vscmd_vsdevcmd_errcount+1
goto :ext_end
)
for /F %%a in ( 'dir "%VS150COMNTOOLS%vsdevcmd\ext\*.bat" /b /a-d-h /on' ) do (
call :call_script_helper ext\%%a
)
:ext_end
set __vscmd_dir_cmd_opt=
exit /B 0
с ошибкой:
'"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\vsdevcmd\ext\"' is not recognized as an internal or external command,
operable program or batch file.
[ERROR:ext\] init:FAILED code:1
Теперь я даже не уверен, связаны ли эти 2 ошибки, но обе появляются в журналах. Я попытался полностью удалить VS и все его продукты. Я переустановил с новым установщиком, но безрезультатно.
Дело в том, что у меня это изначально работало.
Редактировать 2
Хорошо, вот проблема с невозможностью загрузить инструменты VC ++ (с vcvars.bat
):
:export_env_vctoolsinstalldir
if exist "%VCINSTALLDIR%Tools\MSVC\%__VCVARS_TOOLS_VERSION%\" (
set "VCToolsInstallDir=%VCINSTALLDIR%Tools\MSVC\%__VCVARS_TOOLS_VERSION%\"
set "VCToolsVersion=%__VCVARS_TOOLS_VERSION%"
) else (
set VCToolsInstallDir=
if "%VSCMD_DEBUG%" GEQ "2" @echo [DEBUG:%~nx0] Could not find VC++ tools version "%__VCVARS_TOOLS_VERSION%" under "%VCINSTALLDIR%Tools\MSVC\".
goto :end
)
Я не могу найти env. переменные установлены для __VCVARS_TOOLS_VERSION
или VCVARS_TOOLS_VERSION
. Если бы я мог установить это, может быть, я смогу заставить его работать.
Нашел в начале того же файла:
if "%__VCVARS_VERSION%" NEQ "" (
set __VCVARS_TOOLS_VERSION=%__VCVARS_VERSION%
goto :export_env_vctoolsinstalldir
)
Я попытался установить эту переменную и перезапустить vcdevcmd
, но все равно не получилось:
set __VCVARS_VERSION=14.16.27023
Также пробовал:
vsdevcmd -arch=amd64 -host_arch=amd64 -vcvars_ver=14.16.27023
Это выдает ошибку:
[DEBUG:vcvars.bat] Checking architecture { host , tgt } : { x86 , x86 }
[DEBUG:vcvars.bat] Could not add directory to PATH: "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCPackages"
[DEBUG:vcvars.bat] Could not find VC++ tools version "14.16.27023" under "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\".
[DEBUG:ext\vcvars.bat] init:COMPLETE