web-dev-qa-db-ja.com

Windows 7 x64 / VS2012にコンパイルが必要なノードモジュールをインストールできない

コンパイルが必要なモジュールをインストールできません。それらはすべて次のエラーで失敗します。

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

私の環境:

  • Windows 7 Enterprise x 64、バージョン6.1.7601
  • ノードx86 0.8.16
  • npm 1.2.0
  • node-gyp 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

なし、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 [email protected]
gyp info using [email protected] | 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

多分あなたはそれについていくつかのアイデアがあるでしょうか?

ありがとう。

189
Alex Netkachov

それを試してください - それをグローバルに設定します。

npm config set msvs_version 2012 --global
145
srfrnk

VS2010をインストールせずに2012年のみにインストールするには、msvs_versionフラグを設定します。

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

@Jacobのコメントのとおり

2013バージョンをお持ちの場合はnpm install --msvs_version=2013

142
Alex

V3をアップデートします。 https://www.npmjs.com/package/windows-build-tools

npm install --global windows-build-tools

microsoftから無料で提供されるVisual C++ Build Tools 2015をダウンロードしてインストールします。これらのツールは、一般的なネイティブモジュールをコンパイルするために必要です。また、Python 2.7をインストールし、あなたのマシンとnpmを適切に設定します。

V2を更新します。

node-gypはreadmeを更新して---を含むようにしました Windows用HOW-TO

元の:

ビジュアルスタジオ全体を使用する必要はありません。ビルドツールだけをダウンロードできます。

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

2013バージョンを使用するようにグローバルフラグを設定するためにcmdを実行します。

npm config set msvs_version 2013 --global

これですべてが正常に戻り、npm install/node-gypの再構築がうまくいくはずです。

60
catalint

--msvs_version = 2012を追加するだけです

node-gyp rebuild --msvs_version=2012

または

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

Node.jsのパッケージをインストールしようとしたときにも同じ問題がありました。いくつかの大規模なgoogelingの後、私はこの散歩を見つけました: https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

私がこれらのステップをたどったとき、私は何の問題もなく "npm install"を使うことができた。

21

@ felixrieseberg のおかげで、あなたは windows-build-tools npmパッケージ をインストールするだけでいいし、行ってもいいです。

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

Visual Studioをインストールする必要はありません。

Microsoft Build Toolsをインストールする必要はありません。

レポから:

インストール後、npmは自動的にこのモジュールを実行します。このモジュールはMicrosoftから無料で提供されるVisual C++ Build Tools 2015をダウンロードしてインストールします。これらのツールは、一般的なネイティブモジュールをコンパイルするために必要です。また、Python 2.7をインストールし、あなたのマシンとnpmを適切に設定します。

Windows Vista/7には.NET Framework 4.5.1が必要です(現在このパッケージでは自動的にインストールされません)

どちらのインストールも競合がないため、既存のVisual Studio、C++ビルドツール、またはPythonのインストールと混同することはありません。

13
Ramazan Polat

windows 8では、それは私のために働いた:

npm install -g node-gyp -msvs_version=2012

それから

npm install -g restify
11
amgohan

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"へのリンク)現時点ではnode-gypがnodeの2倍古いとしても、新しいものはvcbuild.exeの代わりにmsbuild.exeを使用するため、古い7.1 SDKを使用する必要があります(Windows 8.1上でも)。

そのプロンプトに入ったら、x86コンテキストを取得するために次のコマンドを実行しなければなりませんでした。それは、アーキテクチャーがアーキテクチャーに関してエラーとしてスローしていたからです。

setenv.cmd /Release /x86

それで、物事を再コンパイルするためにnode-gypを使おうとしていたnpmコマンドをうまく実行することができました。

5
rainabba

私は同じisueeを持っていて、上のすべての魔法をしました、私のために魔法をした唯一の事は https://github.com/atom/atom/issues/2435 からです

「--msvs_version = 2013がビルドスクリプトによって実行されるときにnode-gypに渡されないため、GYP_MSVS_VERSION = 2013 env変数を設定すると、あとで機能するはずです。」

バング!出来た

4
amitgur

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 [email protected]
3
danielpopa

Windows 8 64ビット版で、zmqとprotobufをインストールすると、以下がうまくいきました。インストール Visual Studio 2012 コマンドラインで:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf
2
ihm
  1. Python 2.7をインストールします(3.xではありません)。
  2. 環境変数PATHvcbuild.exeを含むディレクトリへのパスを追加します。
  3. vcbuild.exeが必要な場合はこちらから入手してください https://github.com/kin9puppy/vcbuildFixForNode
1
kingPuppy

私は解決策をダウンロードすることだと思います。NETFramework 3.5でServer 2008用のMicrosoft windows sdkをインストールします

または単にVisual Studio 2008をインストールする

問題は、Windowsビルドnode-gypがvcbuid.exeファイルを実行するためのもので、何らかの理由でそれを見つけることができません。

ありがとう

1

長い闘いの末、私は自分のノードアーキテクチャをx86に切り替えましたが、それは魅力のように機能しました。

0
user3035156

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は、ウィンドウ関連の依存関係を生成し、ノードマスターにフォルダ名Releaseを追加します。

一度実行するとファイルの構築に時間がかかります。

それから.gypファイルを持っているディレクトリでコマンドを使う

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

これですべての依存関係が構築されます。

0
niket

Nodejs zmqをコンパイルするのにも多くの問題がありました。

Vcbuild.exeに関する問題については、PATHに追加するだけです。

他の問題のために私はちょうどWindows 7.1 SDK Command Promptを使ってコンパイルすることができます

(メニュープログラム - > Microsoft Windows SDK v7.1 - > Windows 7.1 SDKコマンドプロンプト)

そしてプロンプトから:

npm install zmq

それはうまくいきます:)

0
Kleyson Rios

私はこのチュートリアルで窓8と窓10プロでこの問題を解決しました。私は多くの異なる解決策でこの問題を解決するために多くの時間を試みるが、これで私のためだけに働いた: 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を使いました。

0
Marco Blos