2014-01-18 5 views
16

표준 "Hello World"예제를 컴파일하려고하면 Windows 7 + Node.js 플랫폼에서 node-gyp을 사용하려는 시도가 실패했습니다. [2] ]. 참고 : 노드 -gyp은 npm install contextify 또는 "-g"없음으로 시도 할 때 비슷한 방식으로 실패합니다. 따라서 관련 문제 일 수 있습니다.Windows 7 플랫폼에서 node-gyp을 작동시키는 방법

구성 :

  • 노드 활력 0.12.2
  • 윈도우 7의 x64 SP1 당
  • 파이썬 2.7
  • Node.js를 0.10.24
  • 비주얼 스튜디오 2010 [1] (2012 년에도 시도되었습니다.)
  • [1]에 따른 VS SDK 7.1 (32 비트 및 64 비트 버전 사용)
  • running node-gyp 표준 Windows 명령 프롬프트 또는 SDK7.1에서

참고 문헌을 묻는 메시지가 명령 :
[1] https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

[2] https://github.com/joyent/node/tree/master/test/addons/hello-world

[3] "의"노드 활력이 다시 "안녕하세요 세계를

.... 노드 속이다 \ 0.10.24 deps \ \ 자외선 \는 \ 포함 win.h (8738) : 오류 C2371 'SYSTEM_POWER_STATUS' "[2] 프로젝트 2 에러 다음 생성 재정의; 다른 기본 유형 [... \ build \ test.vcxproj]

.... node-gyp \ 0.10.24 \ deps \ uv \ include \ mswsock.h (27) : 심각한 오류 C 1083 : 할 수 없습니다. '_mingw.h': 열려있는 파일을 포함하지 않음 파일 또는 디렉토리 [... \ 빌드 \의 test.vcxproj]을

2 경고 다음

.... 노드 사기꾼 \ 0.10.24 \ deps \ uv \ include \ win.h (13513) : 경고 C4005 : 'UNALIGNED': 매크로 재정의 [... \ build \ test.vcxproj]

.... 노드 활력 \ 0.10.24 deps는 \ 자외선 \는 \ mswsock.h (26)를 포함 \ : 알 프라 그마 [... \ 빌드 \의 test.vcxproj]

: C4068 경고를 전체 추적은 다음과 같습니다.

C:\sigma\node_modules\x>node-gyp rebuild 
gyp info it worked if it ends with ok 
gyp info using [email protected] 
gyp info using [email protected] | win32 | x64 
gyp info spawn python 
gyp info spawn args [ 'C:\\Users\\Anybody\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py', 
gyp info spawn args 'binding.gyp', 
gyp info spawn args '-f', 
gyp info spawn args 'msvs', 
gyp info spawn args '-G', 
gyp info spawn args 'msvs_version=auto', 
gyp info spawn args '-I', 
gyp info spawn args 'C:\\sigma\\node_modules\\x\\build\\config.gypi', 
gyp info spawn args '-I', 
gyp info spawn args 'C:\\Users\\Anybody\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\addon.gypi', 
gyp info spawn args '-I', 
gyp info spawn args 'C:\\Users\\Anybody\\.node-gyp\\0.10.24\\common.gypi', 
gyp info spawn args '-Dlibrary=shared_library', 
gyp info spawn args '-Dvisibility=default', 
gyp info spawn args '-Dnode_root_dir=C:\\Users\\Anybody\\.node-gyp\\0.10.24', 
gyp info spawn args '-Dmodule_root_dir=C:\\sigma\\node_modules\\x', 
gyp info spawn args '--depth=.', 
gyp info spawn args '--generator-output', 
gyp info spawn args 'C:\\sigma\\node_modules\\x\\build', 
gyp info spawn args '-Goutput_dir=.' ] 
gyp info spawn msbuild 
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=x64' ] 
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. test.cpp 
C:\Users\Anybody\.node-gyp\0.10.24\deps\uv\include\win.h(8738): error C2371: 'SYSTEM_POWER_STATUS' : redefinition; different basic types [C:\sigma\node_modules\x\build\test.vcxproj] C:\Users\Anybody\.node-gyp\0.10.24\deps\uv\include\win.h(8737) : see declaration of 'SYSTEM_POWER_STATUS' 

C:\Users\Anybody\.node-gyp\0.10.24\deps\uv\include\win.h(13513): warning C4005: 'UNALIGNED' : macro redefinition [C:\sigma\node_modules\x\build\test.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdef s.h(502) : see previous definition of 'UNALIGNED' 

C:\Users\Anybody\.node-gyp\0.10.24\deps\uv\include\mswsock.h(26): warning C4068 : unknown pragma [C:\sigma\node_modules\x\build\test.vcxproj] C:\Users\Anybody\.node-gyp\0.10.24\deps\uv\include\_mingw.h(33): warning C4068: unknown pragma [C:\sigma\node_modules\x\build\test.vcxproj] 

C:\Users\Anybody\.node-gyp\0.10.24\deps\uv\include\_mingw.h(51): fatal error C1 189: #error : ERROR: You must use a GNU Compiler. [C:\sigma\node_modules\x\build\test.vcxproj] 

gyp ERR! build error 
gyp ERR! stack Error: msbuild failed with exit code: 1 
gyp ERR! stack at ChildProcess.onExit (C:\Users\Anybody\AppData\Roaming\npm\ 
node_modules\node-gyp\lib\build.js:267:23) 
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) 
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:789:12) 
gyp ERR! System Windows_NT 6.1.7601 
gyp ERR! command "node" "C:\\Users\\Anybody\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" 
gyp ERR! cwd C:\sigma\node_modules\x 
gyp ERR! node -v v0.10.24 
gyp ERR! node-gyp -v v0.12.2 
gyp ERR! not ok 
+0

나는 동일한 문제로 고통 받고 있습니다 ~ ** [Refs [1]] (https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup)에서 모든 단계를 밟았습니다. **, 너 해결 했니? 그렇다면 공유하십시오. –

+0

이 문제에 사용자 환경을 추가하십시오. https://github.com/TooTallNate/node-gyp/issues/662 더 많은 사람들이 참여하면 더 적절한 설치 프로그램을 추가 할 수도 있습니다. – inf3rno

답변

9

이 질문은 1 개월 전이지만 웹 검색은 결국 검색 결과의 일부였습니다.

그래서 여기에 꼭해야 할 일은 아닙니다. 먼저

, 내가 컴파일하고 물건을, 난 정말 정말 노드 활력 파이썬에 따라 (정말 침묵 WTF)은 알려진 바 없음에 대한 그래서

불쌍 node-gyp 또는 전체 비주얼 스튜디오에 익숙하지 않은 해요 nodejs가 0.10보다 오래된 이유.22 (지금 실행 중이므로 어디서 시작하는지 생각해보십시오)

"uv.h"파일을 검색하면 결과가 나타날 수 있습니다 IF 이전에 nodejs 버전을 설치했거나 그렇지 않으면 계속 읽을 수 있어요.

내 이전 0.10.3 nodejs 버전은 고궁 박물원의 문서를 읽어 그래서 만약 당신이 npm install

에 인수를 찾을 일부 같은

<DRIVERLETTER>:\Users\<USERNAME>\.node-gyp\0.10.3\deps\uv 

노드 사기꾼에 uv.h 있었다 - nodedir =/path/to/node/source 인수를 사용하면 npm이 노드 소스 코드를 찾을 수 있으므로 npm이 기본 모듈을 컴파일 할 수 있습니다.

그래서 마지막 명령은

npm install <package> --nodedir="<DRIVERLETTER>:\Users\<USERNAME\.node-gyp\0.10.3" 

당신이 어떤 경고를 얻을 수 있습니다해야하지만 성공을 완료해야합니다.

+0

'0.10.3' 버전이 없지만'0.10.21' 버전에서'uv.h' 파일을 발견했습니다 -'jsdom' 모듈을 설치하려고했습니다 - 여전히 같은 오류입니다. –

+19

+1에 대한 WTF. windows7의 Node-gyp은 노드 유용성 그 자체에 큰 그림자를 떨어 뜨리는 가장 큰 수치 다. – setec

+0

'--nodedir'는'--nodedir = " : \ Users \ .node-gyp \ 0.10.3 \ dep \ uv"'와 같이'\ dep \ uv'까지 지정해야합니다. . – Sithu

0

이 그것을 해결 나에게 도움이 무엇 :

을 내가 두 개의 서로 다른 디렉토리에 노드 활력을 가지고 몇 가지 이유.

디렉토리 1 :

C:\Users\Imran Bughio\.node-gyp\0.10.21\ 

디렉토리 2 :

C:\Users\Imran Bughio\Documents\.node-gyp\0.10.21\ 
내가 deps 폴더 안에 uv 폴더를 가지고 2 디렉토리에서


하지만 폴더 1 디렉토리에 없었다 .

경로는 여기에 uv.h 파일이 들어 있습니다.

C:\Users\Imran Bughio\.node-gyp\0.10.21\deps\uv 

해결책 : 나는 단순히 1

@Phoenix의 대답은 나에게 궁극적으로 나에게 도움이 조금 힌트를 준 디렉토리로 2에서 자외선 & 다른 모든 추가 폴더를 이동

이 문제를 해결하려면 감사합니다 Phoenix.

1

무엇이든지하기 전에 노드 웹 사이트에서 노드와 NPM을 업데이트하십시오 (npm을 통해 노드와 npm을 업데이트하는 것은 Windows에서 중단 된 것 같습니다.) 나는 그 delete-and-reinstall-everything-in- 주문 지침은 최신 내용이지만 가장 중요한 PITA가 될 것입니다. 그 결과 PITA가 될 것입니다. 노드 PASSA는 노드 시절에 그 게시물이 조금 오래되었음을 감안할 때 대안을 찾도록 유도 한 것입니다. pg 모듈에 대한 의존성으로서 2013 년에 실행되었지만 (적어도 그것이 작동하기 전에 찾고 있던 것으로 보입니다).

+0

여러 대의 컴퓨터에서 며칠 동안이 작업에 어려움을 겪었으며 VS2013을 설치하면 마침내 문제가 해결되었습니다. –