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
  • 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

INCLUDE、LIB、LIBPATHなどはありません。

私は問題を簡単に調査し、次の設定で手動でのコンパイル(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

多分あなたはそれについていくつかのアイデアを持っていますか?

ありがとう。


vcvarsall.bat環境を手動でセットアップする代わりに、実行してみましたか?
JohnnyHK 2013年

失敗。それでも「MSB3411:Visual C ++コンポーネント「VCBuild.exe」を読み込めませんでした。」
Alex Netkachov 2013年

ところで、 "C:\ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Bin \ SetEnv.Cmd"でより良い結果が得られました:致命的なエラーC1083:インクルードファイルを開けません: 'stdint.h':そのようなファイルまたはディレクトリはありません
Alex Netkachov 2013年

2
私はついにbcryptをインストールしましたが、これにはwin7 64ビット環境でのビルドが必要で、並べ替えるのが大変でした。私の状況では、bcryptとnode-gypの指示に従いました。クリンチャーは、Microsoft Windows 7 SDKと.Net 4フレームワークをインストールすることでした。インストールしたら(そしてシェルを再起動して)、bcryptのインストールですべてをコンパイルできることがわかりました。だから私はあなたがSDKをインストールしたかどうか疑問に思っていましたか?リストで言及しなかったのでお願いします。
Metalskin 2013年

1
これは2015-11-19に投稿され、IT WORKS!(このスレッドには多くの良い提案がありますが、喜びはありません)github.com/nodejs/node-gyp/issues/629#issuecomment-158163655この手順では、VS2012ではなくBuild Tools 2015をインストールします。
dkloke 2015年

回答:


148

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

npm config set msvs_version 2012 --global

1
パーフェクト!私の問題をすべて修正しました!
hansmei 2015

2
すばらしい、腸の奥深くでnpmを呼び出すスクリプトのセットを実行すると、エラーが発生しました。私はスクリプトを変更したくなかったので、これが私にとって最良のオプションでした
Alastair

2
これは推奨される回答です。Windows10の魅力のように機能しました
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
2番目のコマンドもそのパラメーターに2つのハイフンを含める必要があると思いますが、2つのハイフンを入力すると機能しました。これは私のnpmインストールエラーを乗り越えました-ありがとう!
Dullroar 2013年

1
@Dullroar superuser.com/questions/372203/...それは1ダッシュで私のために働いすくめ
アレックス

これをありがとう; npm installコマンドは私のために働いてそれを得ました。1ダッシュも私のために働いた。
セイリア2014

--msvs-version = 2012
RaduM、2014

これは私のWindows 7 x64インストールで驚くほどうまくいきました!マイクロソフトに感謝します(ディックスであることに感謝します)。
Blairg23、2014年

60

アップデート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=40760

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

npm config set msvs_version 2013 --global

この後、すべてが正常に戻り、npm install / node-gyp rebuildが機能します


ビルドツールプラットフォームツールセットが含まれていない...悲しいことのVisual Studioをインストール周りに方法はないと思わ:(また、Windows上でノード-GYPのインストール手順をお読みください。github.com/nodejs/node-gyp
マイケル・K.

node-gypからの新しいreadmeを含めるように回答を更新しました。@ MichaelKに感謝します。
catalint、2015

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で成功したことに注意してください。追加のツールとUNIXに似たコマンドサポートは、それが機能する理由の一部である可能性がありますが、管理者として実行することがより大きなソリューションでした。
マイケルM

41

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

node-gyp rebuild --msvs_version=2012

または

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

上記と同じ答え。
Blairg23、2014年

1
私は最初に答えました、日付を見てください:)
msulhas 2014年

21

Node.jsのパッケージをインストールしようとしたときにも同じ問題が発生しました。いくつかのグーゲル化の後、私はこのウォークスルーを見つけました:https : //github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

これらの手順を実行したとき、「npm install」を問題なく使用できました。


ありがとう!!! MASSIVE KUDOS PSはまた、あなたのパスにはPythonを追加する必要があります。stackoverflow.com/questions/4621255/...
sidonaldson

Visual Studioが既にインストールされている場合は、上位投票の回答が機能する可能性がありますが、まったくない場合は、この回答が必要です。ありがとう!
JD Smith

このウォークスルーはこれまでで最高です。それにもかかわらず、このすべてのbase64問題は完全に不要であり、煩わしいものです。
ベネディクト2014

そうそう、これが私が必要としたものです。私が見つけた最高のウォークスルーはうまくいきます!
コリン2014

私は、Visual Studio 2008、2010、および2012がインストールされている仕事用コンピューターで問題なくビルドできる、Couchbase SDK for Nodeを使用するNode.jsプロジェクトを持っています。自宅のコンピューターからすべてのMicrosoft開発ツールとSDKをアンインストールし、さまざまな「エクスプレス」オプションを試しました。TooTallNateで文書化されているこれらの手順を実行した後にのみ、NW.js(以前のnode-webkit)を使用して「デスクトップ」アプリケーションとして動作するように再バインドするこの手順を含め、Windows用のCouchbaseバイナリを構築できました。 'nw-gyp rebuild- -target = 0.12.0 '
Rick

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をダウンロードしてインストールします。これらのツールは、一般的なネイティブモジュールをコンパイルするために必要です。また、Python 2.7をインストールして、マシンとnpmを適切に構成します。

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 2017

12

Windows 8では、それは私のために使用しました:

npm install -g node-gyp -msvs_version=2012

その後

npm install -g restify

1
restifyパッケージはOPの質問とは関係がないと思います。restifyは、同じ問題の影響を受けるいくつかのパッケージの1つにすぎません。
adelriosantiago 2015年

5

掘り出しの数日後、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" )。新しいものはvcbuild.exeの代わりにmsbuild.exeを使用するため、古い7.1 SDK(Windows 8.1でも)を持っている必要があると思います。

そのプロンプトに入ると、x86コンテキストを取得するために次のコマンドを実行する必要がありました。それ以外の場合、コンパイラーはアーキテクチャーに関するエラーとしてスローしていたためです。

setenv.cmd /Release /x86

次に、node-gypを使用して再コンパイルしようとするnpmコマンドを正常に実行できました。


4

私は同じ問題があり、上記のすべての魔法を行いました、私のために魔法を行った唯一のものはhttps://github.com/atom/atom/issues/2435からのものです

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

バン!出来た


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
Vladimir Vukanac

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

2

Windows 8 64ビットの場合、zmqとprotobufをインストールすると、次のように機能しました:Visual Studio 2012をインストールします コマンドラインで:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf

Visual Studio 2012には「VS2012の開発者コマンドプロンプト」も付属しているので、env PATH変数をカスタマイズする必要はありません
strider

1

解決策は、.net Framework 3.5を搭載したサーバー2008用のMicrosoft Windows SDKをダウンロードしてインストールすることだと思います

またはVisual Studio 2008をインストールします。

問題は、Windowsビルドの場合、node-gypがvcbuid.exeファイルを実行し、何らかの理由でそれを見つけられないことです。

ありがとう


ここでは、SDKのリンクは次のとおりです。microsoft.com/en-us/download/details.aspx?id=11310
R03

2
codeproject.com/Articles/562386/…によると、VCBuildが見つからない理由は2010年にMSBuildに置き換えられたためです
UnPlan2ned

以下の私の答えを参照してください。vcbuild.exeは必須ですが、多くの環境変数を設定する必要があり、node-gypプロジェクトはそれらを文書化しません。
Rainabba 2013


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に切り替えましたか?
アルマンオルテガ

0

コマンドで、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は、ウィンドウに関連する依存関係を生成し、node-masterにフォルダー名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.