Windows 7 x64 / VS2012에서 컴파일이 필요한 노드 모듈을 설치할 수 없습니다


192

컴파일이 필요한 모듈을 설치할 수 없습니다. 모두 다음과 같은 오류로 실패합니다.

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

내 환경 :

  • Windows 7 Enterprise x64, 버전 6.1.7601
  • 노드 x86 0.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 등이 없습니다.

나는이 문제에 대한 짧은 조사를 수행하고 다음 설정을 사용하여 수동으로 복제 된 git : //github.com/einaros/ws.git에 대한 수동 컴파일 (VCBuild.exe 및 msbuild.exe를 직접 호출)이 성공한다는 것을 알았습니다.

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

어쩌면 그것에 대해 몇 가지 아이디어가 있습니까?

감사.


vcvarsall.bat환경을 수동으로 설정 하는 대신 실행을 시도 했습니까 ?
JohnnyHK

성공하지 못했습니다. 여전히 "MSB3411 : Visual C ++ 구성 요소"VCBuild.exe "를로드 할 수 없습니다."
Alex Netkachov

BTW, "C : \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Bin \ SetEnv.Cmd"로 더 나은 결과를 얻었습니다. 치명적인 오류 C1083 : 포함 파일을 열 수 없습니다 : 'stdint.h': 해당 파일 또는 디렉토리가 없습니다.
Alex Netkachov

2
방금 win7 64 비트 환경을 구축 해야하는 bcrypt를 설치했습니다. 목에 통증이 생겼습니다. 내 상황에서 나는 bcrypt와 node-gyp에 대한 지침을 따랐다. 나를 위해 클린 처는 Microsoft Windows 7 SDK 및 .Net 4 프레임 워크를 설치하고있었습니다. 일단 설치되면 (쉘을 다시 시작했습니다) 설치를 통해 모든 것을 컴파일 할 수 있음을 알았습니다. SDK를 설치했는지 궁금합니다. 나는 당신이 당신의 명부에서 그것을 언급하지 않은 것처럼 묻습니다.
Metalskin

1
이것은 2015-11-19에 게시되었으며 IT WORKS! (이 스레드하지만 기쁨에 많은 좋은 제안은) github.com/nodejs/node-gyp/issues/629#issuecomment-158163655 절차는 빌드 도구 2015,하지 VS2012 설치합니다.
dkloke

답변:


148

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

npm config set msvs_version 2012 --global

1
완전한! 내 모든 문제를 해결했습니다!
hansmei

2
훌륭합니다. 창자에서 npm을 깊이 호출 한 스크립트 세트를 실행할 때 오류가 발생했습니다. 스크립트를 수정하고 싶지 않았기 때문에 이것이 최선의 선택이었습니다.
Alastair

2
이것은 Windows 10의 매력처럼 작동하는 권장 답변이어야합니다
William

2
작동하지 않습니다. error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Green

VS2017이 설치된 Windows 10 PC에서만-VS2017 설정을 사용하여 2015 VC 빌드 도구도 설치했습니다. 다음 torazaburo의 수정이 작동했습니다 :) 실제로 catalint의 답변이 아래에 더 좋지만 시도하지는 않았습니다 ....
Sean

143

VS2010을 설치하지 않고 2012 만 사용하려면 msvs_version 플래그를 설정하십시오.

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

@Jacob 의견에 따라

npm install --msvs_version=2013 2013 버전이 있다면


3
두 번째 명령에는 매개 변수에 두 개의 하이픈이 있어야한다고 생각하지만 두 개의 하이픈을 넣으면 효과가 있습니다. 이로 인해 npm 설치 오류가 발생했습니다. 감사합니다!
Dullroar

1
@Dullroar superuser.com/questions/372203/… 그것은 1 대쉬 어깨를 으
Alex

이것에 감사합니다; npm install명령은 나를 위해 일을 얻었다. 하나의 대시도 나를 위해 일했습니다.
Seiyria

--msvs-version = 2012 여야합니다
RaduM

이것은 Windows 7 x64 설치에서 놀랍게 작동했습니다! 감사합니다 Microsoft (자지)!
Blairg23

60

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

npm install --global windows-build-tools

Microsoft에서 무료로 제공하는 Visual C ++ Build Tools 2015를 다운로드하여 설치합니다. 이러한 도구는 널리 사용되는 기본 모듈을 컴파일하는 데 필요합니다. 또한 컴퓨터와 npm을 적절히 구성하여 Python 2.7을 설치합니다.

v2 업데이트 :

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

실물:

전체 Visual Studio가 필요하지 않으며 빌드 도구 만 다운로드 할 수 있습니다.

Microsoft Build Tools 2013 : http://www.microsoft.com/en-us/download/details.aspx?id=40760

cmd를 실행하여 2013 버전을 사용하도록 전역 플래그를 설정하십시오.

npm config set msvs_version 2013 --global

이 후 모든 것이 정상으로 돌아가고 npm 설치 / node-gyp 재 구축이 작동합니다.


빌드 도구 플랫폼 도구 세트가 ... 슬프게도 또한 창에 노드 고용인에 대한 설치 지침을 읽어 :( 비주얼 스튜디오를 설치 주위에 방법이없는 것 같다 포함되지 않습니다 : github.com/nodejs/node-gyp
마이클 K.을

@MichaelK 덕분에 node-gyp의 새로운 readme를 포함하도록 업데이트 된 답변.
catalint

2
내가 VS2015를 설치하고이 명령을 실행 npm config set msvs_version 2015 --global뿐만 아니라 작동
JRulle

마찬가지로 Microsoft Build Tools 2015 설치 및 npm config set msvs_version 2015 --global작동
Jon Onstott

1
NPM (Node Package Manager) DID를 사용하여 위에서 설명한대로 'windows-build-tools'를 실행하면 Microsoft PowerShell을 통해 실행할 때만 작동 합니다 . 이것은 10 년 이상 Microsoft에서 제공 한 Windows 유틸리티입니다. 빌드 도구를 실행하는 데 필요한 관리 권한이 있습니다. PowerShell을 찾아 마우스 오른쪽 단추로 클릭 한 다음 관리자 권한으로 실행하십시오. 수도 관리로 신속한 표준 CMD 실행합니다 또한 작업,하지만 난 성공했다 PowerShell을 . Admin으로 실행하는 것이 더 큰 솔루션이기는하지만 추가 툴링 및 UNIX와 유사한 명령 지원이 작동하는 이유 중 일부일 수 있습니다.
Michael M

41

--msvs_version = 2012를 추가하십시오.

node-gyp rebuild --msvs_version=2012

또는

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

위와 같은 대답입니다.
Blairg23

1
나는 먼저 대답했다 : 날짜를보십시오 :)
msulhas

21

Node.js 용 패키지를 설치하려고 할 때도 같은 문제가있었습니다. 광범위한 googeling 후 나는이 walktrough를 발견했다 : https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

이 단계를 수행했을 때 아무런 문제없이 "npm install"을 사용할 수있었습니다.


감사!!! 대규모 KUDOS 추신 당신은 또한 당신의 경로에 파이썬을 추가 할 수 있습니다 stackoverflow.com/questions/4621255/...
sidonaldson

Visual Studio를 이미 설치 한 경우 가장 인기있는 답변이 작동 할 수 있지만, 전혀없는 경우이 답변이 필요합니다. 감사!
JD Smith

이 연습은 지금까지 최고입니다. 그럼에도 불구하고,이 모든 base64 문제는 완전히 불필요하고 짜증납니다!
Benedikt

네, 이것이 제가 필요한 것입니다. 내가 찾은 것이 가장 좋습니다.
코린

Visual Studio 2008, 2010 및 2012가있는 업무용 컴퓨터에서 올바르게 빌드되는 Couchbase SDK for Node를 사용하는 Node.js 프로젝트가 있습니다. Visual Studio의 사본없이 "애호가"설치를 테스트하고 싶었습니다. 가정용 컴퓨터에서 모든 Microsoft 개발 도구와 SDK를 제거하고 다양한 "Express"옵션을 사용해 보았습니다. TooTallNate가 문서화 한 이러한 단계를 수행 한 후에 만 ​​NW.js (이전의 node-webkit)를 사용하여 "데스크톱"애플리케이션으로 작동하기 위해 리 바인드하는 단계를 포함하여 Windows 용 Couchbase 바이너리를 빌드 할 수있었습니다. 'nw-gyp rebuild- -target = 0.12.0 '
Rick Rutt 1

13

@felixrieseberg 덕분에 windows-build-tools npm 패키지 를 설치 하기 만하면 됩니다.

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

Visual Studio를 설치할 필요가 없습니다.

Microsoft Build Tools를 설치할 필요가 없습니다.

레포에서 :

설치 후 npm은이 모듈을 자동으로 실행하여 Microsoft에서 무료로 제공하는 Visual C ++ Build Tools 2015를 다운로드하여 설치합니다. 이러한 도구는 널리 사용되는 기본 모듈을 컴파일하는 데 필요합니다. 또한 컴퓨터와 npm을 적절히 구성하여 Python 2.7을 설치합니다.

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

두 설치 모두 충돌이 없으므로 기존 Visual Studio, C ++ 빌드 도구 또는 Python 설치를 망칠 필요가 없습니다.


1
너가 확실히 맞아. VS, npm 및 gyp 버전을 몇 시간 동안 사용했지만 .NET 4.5.1이 없으면 컴파일 할 수있는 방법이 절대 없습니다. 또한 .NET이 번들로 제공되므로 대부분의 VS 설치에서 작동하는 이유도 설명합니다.
Xan-Kun Clark-Davis

12

Windows 8에서는 다음을 사용하여 나를 위해 일했습니다.

npm install -g node-gyp -msvs_version=2012

그때

npm install -g restify

1
restify 패키지가 OP 질문과 관련 이 있다고 생각하지 않습니다 . restify 는 동일한 문제의 영향을받는 여러 패키지 중 하나 일뿐 입니다.
adelriosantiago

5

파는 DAYS 후, IRC의 누군가가

Windows 7.1 SDK Command Prompt

바로 가기 (C : \ Windows \ System32 \ cmd.exe에 링크 / E : ON / V : ON / T : 0E / K "C : \ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd" ). 새로운 7.1 SDK는 vcbuild.exe 대신 msbuild.exe를 사용하기 때문에 이전 7.1 SDK가 있어야한다고 생각합니다.이 시점에서 node-gyp는 node보다 두 배나 오래 되었더라도 node-gyp이 원합니다.

그 프롬프트에서 컴파일러가 아키텍처에 대해 오류로 던지기 때문에 x86 컨텍스트를 얻으려면 다음을 실행해야했습니다.

setenv.cmd /Release /x86

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


4

나는 같은 isuee를 가지고 위의 모든 마술을했다, 나를 위해 마술을 한 유일한 것은 https://github.com/atom/atom/issues/2435 에서 온 것입니다.

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

쾅! 그것은 효과가 있었다


3

Windows에서 이것은 도움이되었습니다 : (신용 정보는 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

1
이 당신을 위해 실패 할 경우, 검사는 환경 변수 PYTHON = C해야합니까 : \ Python27 \ python.exe를, 그리고 stackoverflow.com/a/15937635/2873481
블라디미르 Vukanac

npm install -g node-gyp @ latest?
Alexander Mills

2

zmq 및 protobuf를 설치하는 Windows 8 64 비트의 경우 다음이 작동했습니다. Visual Studio 2012 설치 명령 줄에 :

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf

당신이 당신의 ENV의 PATH 변수를 사용자 정의 할 필요가 없습니다 비주얼 스튜디오 2012도 함께 '개발자 명령 VS2012에 대한 프롬프트'제공
스트라이더

1

해결책은 다운로드하는 것 같아요 .net 프레임 워크 3.5가있는 서버 2008 용 Microsoft Windows SDK 설치

또는 단지 비주얼 스튜디오 2008를 설치합니다 .

문제는 Windows 빌드 node-gyp가 vcbuid.exe 파일을 실행하며 어떤 이유로 든 찾을 수 없다는 것입니다.

감사


SDK 링크는 다음과 같습니다. microsoft.com/en-us/download/details.aspx?id=11310
r03


아래 답변을 참조하십시오. vcbuild.exe가 필요하지만 많은 환경 변수를 설정해야하며 node-gyp 프로젝트가이를 문서화하지 않습니다.
rainabba


0

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

vcbuild.exe와 관련된 문제의 경우 PATH에 추가하십시오.

다른 문제의 경우 다음을 사용하여 컴파일 할 수 있습니다. Windows 7.1 SDK Command Prompt

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

그리고 프롬프트에서 :

npm install zmq

작동합니다 :)


0

오랜 노력 끝에 노드 아키텍처를 x86으로 전환했으며 매력처럼 작동했습니다.


1
x86으로 어떻게 전환했는지 더 자세히 설명해 주시겠습니까?
Arman Ortega

0

cmd에서 ur 버전에 따라 Visual Studio 경로를 다음과 같이 설정하십시오.

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는 Windows 관련 종속성을 생성하고 노드 마스터에 폴더 이름 Release를 추가합니다.

일단 실행되면 파일을 작성하는 데 시간이 걸립니다.

그런 다음 .gyp 파일 사용 명령이있는 디렉토리에서

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

이것은 모든 의존성을 쌓을 것입니다.


0

이 자습서를 통해 Windows 8 및 Windows 10 Pro 에서이 문제를 해결했습니다. 나는 많은 다른 솔루션 으로이 문제를 해결하기 위해 많은 시간을 시도하지만 다음과 같이 나를 위해 일했습니다 : http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express -2015-on-windows-10-pro-x64 이 자습서와 같이 노드 버전을 제어하기 위해 nodist를 사용하지 않았 음을 알았습니다 .NVM을 사용하고 정상적으로 작동했습니다.이 자습서를 nodist로 테스트하지 않습니다. 노드 5.2.0을 사용했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.