2013-12-17 4 views
2

Windows 7 (64 비트) 시스템에 phantomjs-node 모듈을 설치하려고합니다. 약한 모듈을 설치하는 중 node-gyp 재 구축 오류가있는 것 같습니다.Windows 7에 phantomjs의 "weak"모듈을 설치하는 중 node-gyp rebuild가 실패했습니다.

나는 node-gyp windows installation steps을 따라 왔으며 파이썬이 설치되어 있고 경로가 올바르게 설정되어 있습니다.

나는 visual-C++ 및 node-gyp에 필요한 다른 요구 사항도 있습니다. 슬프게도 node-gyp 재 구축 오류를 수정할 수 없습니다. 0.8.14 (64 비트)

  • 파이썬 - - 2.7.3 (64 비트)
  • 의 Microsoft Visual C++ 2010 (64 비트도 설치 32 비트
    • 노드 나는

      를 설치 한 다음 한

      단지의 경우, 이후 64 비트)

    • 비주얼 스튜디오 2010
    • (프로) 및 Visual Studio 2012 (웹 및 데스크톱을 모두 표현)
    • 윈도우 SDK 7.1
    012을 도움이되지 않았다 3,516,

    약한 모듈을 설치하는 동안 나는 점점 계속 오류 :

    C : \의 Program Files (x86) \ MSBuild를 \ Microsoft.Cpp \ 4.0의 \의 Microsoft.Cpp.InvalidPlatform.Targets (23,7) : 오류 MSB8007 : 'weakref.vcxproj'프로젝트의 플랫폼이 유효하지 않습니다. 플랫폼 = 'x64'. 솔루션 파일없이 프로젝트를 빌드하려고하고이 프로젝트에 존재하지 않는 기본이 아닌 플랫폼을 지정했기 때문에이 메시지가 표시 될 수 있습니다.

    위의 문제로 인해 모든 링크를 시도하고 모든 노드 - gyp 요구 사항이 올바르게 설치되었습니다. 많은 도움을 주셨습니다.

  • 답변

    1

    많은 실험 끝에 문제를 해결할 수있었습니다.

    Windows sdk 7.1을 재설치했는데, 이번에는 sdk 설치가 이루어지는 기본 경로를 변경했습니다. 이전 SDK는

    C에 설치하기 기본적으로했다 : \ 프로그램 파일 \은 Microsoft SDKs \ 윈도우 \ v7.1을

    하지만 내가 C에서 보았을 때 설치가 완료된 후 : \ 프로그램 Files \ Microsoft C : \ Program Files (x86) \ Microsoft SDKs \ Windows 폴더에 SDK가 설치되어있어 SDK를 찾을 수 없습니다. 따라서 Windows sdk를 다시 설치하는 동안 C : \ Program Files \ Microsoft SDK를 가리키는 기본 경로가 C : \ Program Files (x86) \ Microsoft SDK로 변경되었으며 도움이되었습니다.

    Windows sdk를 다시 설치하기 전에 설치된 모든 Visual C++ 버전을 제거하십시오.

    약한 모듈이 설치되었지만 아무런 문제가 발생하지 않은 경고가 표시됩니다. 희망이 도움이됩니다.

    2

    Windows SDK를 다시 설치하면 문제가 해결됩니다.

    3

    아무도 일하지, 또는 너무 많은 미지수가 있었다, 그래서 나는 쉬운 솔루션이 필요했습니다. 내가 한 것은 당신이 윈도우 (그렇지 않으면 당신은 아마 전혀이 문제가없는 것)에있어 가정, 방법은 따라서

    dnodeOpts property could help you to control dnode settings, so you could disable weak by setting it false to avoid that complicated installations. 
    
    var phantom = require('phantom'); 
    
    phantom.create(function (ph) { 
        ph.createPage(function (page) { 
        /* the page actions */ 
        }); 
    }, { 
        dnodeOpts: { 
        weak: false 
        } 
    }); 
    

    을 말한다 https://github.com/sgentle/phantomjs-node 페이지에 제안 사용했다, 단지 dnodeOpts로 설정 false로 설정 한 다음 phantom.create 함수를 종료하십시오. 예를 들어 초보자 코드를 사용하는 경우 :

    phantom.create(function (ph) { 
        ph.createPage(function (page) { 
         page.open("http://www.google.com", function (status) { 
          console.log("opened google? ", status); 
          page.evaluate(function() { return document.title; }, function (result) { 
          console.log('Page title is ' + result); 
          ph.exit(); 
          }); 
         }); 
        }); 
    }, { 
        dnodeOpts: { 
         weak: false 
        }   
    });