programing

윈도우즈 7 x64/VS2012에 컴파일이 필요한 노드 모듈을 설치할 수 없음

testmans 2023. 10. 17. 20:07
반응형

윈도우즈 7 x64/VS2012에 컴파일이 필요한 노드 모듈을 설치할 수 없음

컴파일이 필요한 모듈을 설치할 수 없습니다.다음 오류와 함께 모든 오류가 실패합니다.

MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe". ...

내 환경:

  • Windows 7 Enterprise x64 버전 6.1.7601
  • 노드 x860.8.16
  • npm 1.2.0
  • 노드집 0.8.2
  • Visual Studio 2012 및 수많은 패키지

관련 환경 변수:

Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShel l\v1.0;C:\Program Files\TortoiseGit\bin;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;c:\tools;c:\tools\node

INClude, LIB, LIBPATH 등은 없습니다.

문제를 간단히 조사한 결과 다음과 같은 설정을 통해 수동 컴파일(calling VCBuild.exe 및 msbuild.exe 직접)이 수동 복제 git://github.com/einaros/ws.git 에 성공했음을 확인했습니다.

SET Configuration=Release
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcpackages
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin;%PATH%
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE;%PATH%
SET PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET PATH=%SystemRoot%\system32;%PATH%

SET INCLUDE=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\include
SET INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%

SET LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Lib
SET LIB=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\lib;%LIB%

SET MSBUILD="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"

VCBuild.exe C:\Tools\node\ws\build\bufferutil.vcproj "Release|Win32" /useenv
VCBuild.exe C:\Tools\node\ws\build\validation.vcproj "Release|Win32" /useenv
%MSBUILD% build/binding.sln /verbosity:diagnostic /nologo /p:Configuration=Release;Platform=Win32

같은 변수로 node-gyp를 호출해 보았지만 실패했습니다.

C:\!> git clone https://github.com/einaros/ws.git
C:\!> cd ws
C:\!\ws>node-gyp configure
...
C:\!\ws>node-gyp build
gyp info it worked if it ends with ok
gyp info using node-gyp@0.8.2
gyp info using node@0.8.16 | win32 | ia32
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=Win32' ]
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Users\User\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\!\
ws\build\binding.sln]
C:\Users\User\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\!\
ws\build\binding.sln]
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (c:\Tools\node\node_modules\node-gyp\lib\build.js:255:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:99:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:678:10)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "c:\\Tools\\node\\\\node.exe" "c:\\Tools\\node\\node_modules\\node-gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\!\ws
gyp ERR! node -v v0.8.16
gyp ERR! node-gyp -v v0.8.2
gyp ERR! not ok

아마도 당신은 그것에 대해 약간의 아이디어가 있을 것입니다.

감사해요.

시도해 보십시오. 전역적으로 설정합니다.

npm config set msvs_version 2012 --global

VS2010을 설치하지 않고 2012년만 수행하려면 msvs_version 플래그를 설정합니다.

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

@Jacob의 논평에 의하면.

npm install --msvs_version=20132013년 버전이 있다면

v3 업데이트: https://www.npmjs.com/package/windows-build-tools

npm install --global window-build-tools

Microsoft에서 무료로 제공하는 Visual C++ Build Tools 2015를 다운로드하여 설치합니다.이러한 도구는 인기 있는 네이티브 모듈을 컴파일하는 데 필요합니다.또한 Python 2.7을 설치하여 당신의 기계와 npm을 적절하게 구성할 것입니다.

v2 업데이트:

node-gyp이 윈도우용 HOW-TO를 포함하도록 readme를 업데이트했습니다.

원본:

전체 비주얼 스튜디오가 필요 없고, 빌드 도구만 다운로드할 수 있습니다.

마이크로소프트 빌드 도구 2013: http://www.microsoft.com/en-us/download/details.aspx?id=40760

run cmd를 사용하여 2013 버전을 사용하도록 글로벌 플래그를 설정합니다.

npm config set msvs_version 2013 --global

이 후 모든 것이 정상으로 돌아와야 하며 npm 설치/노드-gyp 재구축이 작동합니다.

--msvs_version=2012를 추가하기만 하면 됩니다.

node-gyp rebuild --msvs_version=2012

아니면

node-gyp configure --msvs_version=2012
node-gyp build 

Node.js용 패키지를 설치하려고 할 때도 같은 문제가 있었습니다.나는 몇 번의 긴 시간 동안 구걸을 한 후에 이 길을 발견했습니다: https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

이 단계를 따랐을 때 문제없이 "npm install"을 사용할 수 있었습니다.

@felixrieseberg 덕분에 window-build-tools npm 패키지만 설치하면 되고, 가셔도 좋습니다.

npm install --global --production windows-build-tools

비주얼 스튜디오를 설치할 필요가 없습니다.

마이크로소프트 빌드 도구를 설치할 필요가 없습니다.

레포에서:

설치 후 npm은 이 모듈을 자동으로 실행하여 Microsoft에서 무료로 제공하는 Visual C++ Build Tools 2015를 다운로드하여 설치합니다.이러한 도구는 인기 있는 네이티브 모듈을 컴파일하는 데 필요합니다.또한 Python 2.7을 설치하여 당신의 기계와 npm을 적절하게 구성할 것입니다.

Windows Vista / 7(윈도우 비스타 / 7)이 필요합니다.NET Framework 4.5.1(현재 이 패키지에서 자동으로 설치되지 않음)

두 설치 모두 충돌이 없으므로 Visual Studio, C++ Build Tools 또는 Python의 기존 설치를 방해하지 않습니다.

윈도우 8에서는 다음을 사용하여 제게 효과가 있었습니다.

npm install -g node-gyp -msvs_version=2012

그리고나서

npm install -g restify

며칠 동안 땅을 파다가, IRC에 있는 누군가가 제게 그를 이용해 보라고 제안했습니다.

Windows 7.1 SDK Command Prompt

바로 가기(C로 링크:\Windows\시스템32\cmd.exe /E:ON/V:ON/T:0E/K "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd").새로운 SDK는 msbuild를 사용하기 때문에 이전 7.1 SDK(윈도우 8.1에서도)가 있어야 한다고 생각합니다.vcbuild 대신 exe.이 시점에서 노드보다 두 배나 오래되었지만 노드집이 원하는 것인 exe :/

일단 이 프롬프트가 뜨면 컴파일러가 아키텍처에 대한 오류로 던지고 있었기 때문에 x86 컨텍스트를 얻기 위해 다음을 실행해야 했습니다.

setenv.cmd /Release /x86

그런 다음 node-gyp을 사용하여 물건을 다시 컴파일하려는 npm 명령을 성공적으로 실행할 수 있었습니다.

저는 같은 이슈를 가지고 있었고 위의 모든 마법을 수행했습니다. 저를 위해 마법을 수행한 것은 https://github.com/atom/atom/issues/2435 에서 온 것뿐입니다.

" --msvs_version=2013은 빌드 스크립트에 의해 실행될 때 node-gyp로 전달되지 않기 때문입니다.GYP_MSVS_VERSION = 2013 env 변수 설정 후 작동"

쾅! 됐습니다.

Windows에서 다음과 같이 도움이 되었습니다. (credits는 다음으로 이동) https://github.com/TooTallNate/node-gyp/wiki/Updating-npm%27s-bundled-node-gyp MINGW32를 사용해 보았지만 성공하지 못했습니다.

위에cmd.exe

$ cd "C:\Program Files\nodejs\node_modules\npm"
$ npm install -g node-gyp@latest

zmq와 protobf를 설치하는 윈도우 8 64비트의 경우 명령 줄에 비주얼 스튜디오 2012 설치:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf

해결책은 .netframework 3.5로 서버 2008용 Microsoft window sdk 설치를 다운로드하는 것이라고 생각합니다.

Visual studio 2008을 설치할 수도 있습니다.

문제는 윈도우즈 빌드 노드-gyp가 vcbuid를 실행한다는 것입니다.어떤 이유에서인지 찾을 수가 없습니다.

감사해요.

  1. Python 2.7 설치(3.x 아님)
  2. 다음을 포함하는 디렉토리에 경로 추가vcbuild.exe환경 변수에 따라PATH
  3. 필요하시면vcbuild.exe여기서 https://github.com/kin9puppy/vcbuildFixForNode

nodejs zmq를 컴파일하는 데도 많은 문제가 있었습니다.

vcbuild.exe의 문제는 PATH에 추가하기만 하면 됩니다.

다른 문제에 대해서는 그냥 을 사용해서 컴파일할 수 있었습니다.Windows 7.1 SDK Command Prompt

(메뉴 프로그램 -> Microsoft Windows SDK v7.1 -> Windows 7.1 SDK 명령 프롬프트)

그리고 프롬프트에서:

npm install zmq

잘됐네요 :)

오랜 고민 끝에 노드 아키텍처를 x86으로 바꿨는데 매력적으로 작동했습니다.

cmd에서 당신의 버전에 따라 비주얼 스튜디오 경로를 다음과 같이 설정합니다.

Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%

Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%

Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%

node-master(git에서 다운로드한 원래 노드 모듈)에서 관리자 권한으로 vcbuild.bat를 실행합니다.vcbild.bat는 윈도우즈 관련 종속성을 생성하고 node-master에 Release라는 폴더 이름을 추가합니다.

일단 실행되면 파일을 만드는 데 시간이 걸릴 것입니다.

그런 다음 .gyp file use 명령이 있는 디렉토리에서

node-gyp rebuild --msvs_version=2012 --nodedir="Dive Name:\path to node-master\node-master"

이렇게 하면 모든 의존관계가 형성됩니다.

저는 이 튜토리얼로 윈도우 8과 윈도우 10 프로에서 이 문제를 해결했습니다.저는 여러 가지 해결책으로 이 문제를 해결하기 위해 여러 번 시도했지만, 이 문제로만 해결할 수 있었습니다. http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express-2015-on-windows-10-pro-x64 저는 이 튜토리얼처럼 노드 버전을 제어하기 위해 nodist를 사용하지 않았고, NVM을 사용하고 잘 작동했습니다.나는 노디스트로 이 튜토리얼을 테스트하지 않습니다.노드 5.2.0을 사용했습니다.

언급URL : https://stackoverflow.com/questions/14278417/cannot-install-node-modules-that-require-compilation-on-windows-7-x64-vs2012

반응형