Windows SDK не найден при установке SpiderMonkey

1299
Houseman

Я следую этому руководству, чтобы установить SpiderMokey.

Я скачал и установил Visual Studio Community 2015, затем перезапустил.
Я скачал и установил пакет MozillaBuild.

Когда я иду c:\mozilla-buildи бегу start-shell-msvc2015.bat, он говорит

MozillaBuild Install Directory: C:\mozilla-build\ Visual C++ 2015 Directory: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\  No Windows SDK found. Exiting.  Press any key to continue . . . 

Я ожидаю, что он найдет Windows SDK, который, как я предполагаю, я только что скачал с VS 2015, но это не так.

Что он ищет и как его получить?

EDIT2:

После установки Windows SDK 8.1 и повторной попытки я получаю эту ошибку:

Unable to call a suitable vcvars script. Exiting. 

Вот весь скрипт установки:

@ECHO OFF  SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION  REM Reset some env vars and set some others. SET CYGWIN= SET INCLUDE= SET LIB= IF NOT DEFINED MOZ_NO_RESET_PATH ( SET PATH=%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem )  REM mintty is available as an alternate terminal, but is not enabled by default due REM to various usability regressions. Set USE_MINTTY to 1 to enable it. IF NOT DEFINED USE_MINTTY ( SET USE_MINTTY= )  SET ERROR= SET MOZILLABUILD=%~dp0 SET TOOLCHAIN=  REM Figure out if we're on a 32-bit or 64-bit host OS. REM NOTE: Use IF ERRORLEVEL X to check if the last ERRORLEVEL was GEQ(greater or equal than) X. SET WINCURVERKEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion REG QUERY "%WINCURVERKEY%" /v "ProgramFilesDir (x86)" >nul 2>nul IF NOT ERRORLEVEL 1 ( SET WIN64=1 ) ELSE ( REM Bail early if the x64 MSVC start script is invoked on a 32-bit host OS. REM Note: We explicitly aren't supporting x86->x64 cross-compiles. IF "%MOZ_MSVCBITS%" == "64" ( SET ERROR=The MSVC 64-bit toolchain is not supported on a 32-bit host OS. Exiting. GOTO _QUIT ) SET WIN64=0 )  REM Append moztools to PATH IF "%WIN64%" == "1" ( SET MOZ_TOOLS=%MOZILLABUILD%moztools-x64 ) ELSE ( SET MOZ_TOOLS=%MOZILLABUILD%moztools ) SET PATH=%PATH%;%MOZ_TOOLS%\bin  REM Set up the MSVC environment if called from one of the start-shell-msvc batch files. IF DEFINED MOZ_MSVCVERSION ( IF NOT DEFINED VCDIR ( REM Set the MSVC registry key. IF "%WIN64%" == "1" ( SET MSVCKEY=HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\%MOZ_MSVCVERSION%.0\Setup\VC ) ELSE ( SET MSVCKEY=HKLM\SOFTWARE\Microsoft\VisualStudio\%MOZ_MSVCVERSION%.0\Setup\VC )  REM Find the MSVC installation directory and bail if none is found. REG QUERY !MSVCKEY! /v ProductDir >nul 2>nul IF ERRORLEVEL 1 ( SET ERROR=Microsoft Visual C++ %MOZ_MSVCYEAR% was not found. Exiting. GOTO _QUIT ) FOR /F "tokens=2*" %%A IN ('REG QUERY !MSVCKEY! /v ProductDir') DO SET VCDIR=%%B )  IF NOT DEFINED SDKDIR ( REM Set the Windows SDK registry keys. SET SDKPRODUCTKEY=HKLM\SOFTWARE\Microsoft\Windows Kits\Installed Products SET SDKROOTKEY=HKLM\SOFTWARE\Microsoft\Windows Kits\Installed Roots IF "%WIN64%" == "1" ( SET WIN81SDKKEY= ) ELSE ( SET WIN81SDKKEY= )  REM Windows SDK 8.1 REG QUERY "!SDKPRODUCTKEY!" /v "!WIN81SDKKEY!" >nul 2>nul IF NOT ERRORLEVEL 1 ( FOR /F "tokens=2*" %%A IN ('REG QUERY "!SDKROOTKEY!" /v KitsRoot81') DO ( REM The Installed Products key still exists even if the SDK is uninstalled. REM Verify that the Windows.h header exists to confirm that the SDK is installed. IF EXIST "%%B\Include\um\Windows.h" ( SET SDKDIR=%%B ) )  REM Bail if no Windows SDK is found. IF NOT DEFINED SDKDIR ( SET ERROR=No Windows SDK found. Exiting. GOTO _QUIT )  SET SDKVER=8 SET SDKMINORVER=1 ) )  REM Prepend MSVC paths. IF "%MOZ_MSVCBITS%" == "32" ( REM Prefer cross-compiling 32-bit builds using the 64-bit toolchain if able to do so. IF "%WIN64%" == "1" IF EXIST "!VCDIR!\bin\amd64_x86\vcvarsamd64_x86.bat" ( CALL "!VCDIR!\bin\amd64_x86\vcvarsamd64_x86.bat" SET TOOLCHAIN=64-bit cross-compile )  REM LIB will be defined if vcvarsamd64_x86.bat has already run. REM Fall back to vcvars32.bat if it hasn't. IF NOT DEFINED LIB ( IF EXIST "!VCDIR!\bin\vcvars32.bat" ( CALL "!VCDIR!\bin\vcvars32.bat" SET TOOLCHAIN=32-bit ) ) ) ELSE IF "%MOZ_MSVCBITS%" == "64" ( IF EXIST "!VCDIR!\bin\amd64\vcvars64.bat" ( CALL "!VCDIR!\bin\amd64\vcvars64.bat" SET TOOLCHAIN=64-bit ) )  REM LIB will be defined if a vcvars script has run. Bail if it isn't. IF NOT DEFINED LIB ( SET ERROR=Unable to call a suitable vcvars script. Exiting. GOTO _QUIT ) )  cd "%USERPROFILE%" IF "%USE_MINTTY%" == "1" ( START %MOZILLABUILD%msys\bin\mintty -e %MOZILLABUILD%msys\bin\console %MOZILLABUILD%msys\bin\bash --login ) ELSE ( %MOZILLABUILD%msys\bin\bash --login -i ) EXIT /B  :_QUIT ECHO MozillaBuild Install Directory: %MOZILLABUILD% IF DEFINED VCDIR (ECHO Visual C++ %MOZ_MSVCYEAR% Directory: !VCDIR!) IF DEFINED SDKDIR (ECHO Windows SDK Directory: !SDKDIR!) IF DEFINED TOOLCHAIN (ECHO Trying to use the MSVC %MOZ_MSVCYEAR% !TOOLCHAIN! toolchain.) ECHO. ECHO %ERROR% ECHO. PAUSE EXIT /B 
1
Какая версия вам нужна? Они все на сайте Microsoft. Ramhound 8 лет назад 0
@Ramhound Я скачал VS Community 2015. Это не так или не должно содержать «Windows SDK»? Houseman 8 лет назад 0
Скорее всего нет; но это был не мой вопрос ... какую версию ожидает скрипт сборки Ramhound 8 лет назад 0
@Ramhound Видимо Windows SDK 8.1 Houseman 8 лет назад 0
[Загрузить его] (https://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx) VS2015 не будет устанавливать 8.1 SDK, но [Win 10 SDK] (https://dev.windows.com / EN-US / загрузки / окна-10-разработчик-инструменты) Ramhound 8 лет назад 1
@Ramhound после загрузки и установки я получаю новую ошибку: `Невозможно вызвать подходящий сценарий vcvars. Exiting.` Houseman 8 лет назад 0
звучит так, как будто сценарий ожидает более раннюю версию VC ++ Ramhound 8 лет назад 0

3 ответа на вопрос

1
toster-cx

Что касается второй проблемы, то ответ Фьюги неверен. В vcvarsVisual Studio Community 2015 есть сценарий. Инструменты C ++ просто не устанавливаются с настройками по умолчанию! Убедитесь, что вы отметили их во время установки. Если вы не сделали, вы всегда можете пойти в add or remove programs > visual studio 2015 > modify.

0
paulolol

Maybe you should just install VS 2013 (12.0) Update 3 or later. I had the same problem, I installed VS 2015 because I had VS 2013 Update 1 and VS 2015 doesn't seem to have the vcvars.bat script.

Strange that mozilla-build script for VS 2015 still needs this...

Once you have installed VS 2013, you can just go in its folder \VC\bin and copy vcvars32.bat to VS 2015 folder \VC\bin. It worked for me (compiling Firefox)

0
Feugy

On my VS 2015 (community edition), there is no vcvars32.bat, but there is a vsvars32.bat, located into\Common7\Tools folder.

I've patched the mozilla-build\start-shell.bat from (line 107):

 IF EXIST "!VCDIR!\bin\vcvars32.bat" ( CALL "!VCDIR!\bin\vcvars32.bat" SET TOOLCHAIN=32-bit ) 

to:

 IF EXIST "!VCDIR!\..\Common7\Tools\vsvars32.bat" ( CALL "!VCDIR!\..\Common7\Tools\vsvars32.bat" SET TOOLCHAIN=32-bit )