无法在 Windows7x64/VS2012上安装需要编译的节点模块

我无法安装任何需要编译的模块。所有这些模块都会出现以下错误:

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

我的环境:

  • Windows 7 Enterprise x64,版本6.1.7601
  • 节点 x860.8.16
  • Npm 1.2.0
  • Node-gyp 0.8.2
  • VisualStudio2012和许多软件包

相关环境变量:

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 等。

我对这个问题做了一个简短的调查,发现通过以下设置,手动编译(直接调用 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

也许你会有一些想法呢?

谢谢。

166272 次浏览
我认为解决方案是下载 使用.net Framework 3.5 为 server2008安装 Microsoft Windows SDK

只需安装 Visual Studio 2008

问题在于 Windows 构建的 node-gyp 执行 vcbuid.exe 文件,并且由于某种原因找不到它。

谢谢

我在尝试安装 Node.js 软件包时遇到了同样的问题。经过大量的谷歌搜索,我找到了这个步骤: https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

当我完成了这些步骤之后,我就可以毫无问题地使用“ npm install”了。

只需添加—— msvs _ version = 2012

node-gyp rebuild --msvs_version=2012

或者

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

要在没有安装 VS2010的情况下(仅在2012年)完成此操作,请设置 msvs _ version 标志:

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

根据@Jacob 评论

如果你有2013年版本的 npm install --msvs_version=2013

对于 Windows 864位,安装 zmq 和 Protobuf,以下方法对我很有效: 安装 Visual Studio 2012 在命令行上:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf

经过几天的挖掘,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 (即使在 Windows 8.1上) ,因为新版本使用的是 msbuild.exe 而不是 vcbuild.exe,这正是 node-gyp 想要的,尽管它的旧版本是 node 的两倍:/

在这个提示符中,我必须运行以下命令才能得到 x86上下文,因为编译器抛出了关于体系结构的错误:

setenv.cmd /Release /x86

然后我能够成功地运行 npm 命令,这些命令试图使用 node-gyp 重新编译东西。

在 windows 8上,我使用:

npm install -g node-gyp -msvs_version=2012

那么

npm install -g restify

试试这个-将设置为全球:

npm config set msvs_version 2012 --global

经过长时间的努力,我将我的节点体系结构切换到 x86,它工作得非常出色。

< p > 视窗 这对我有所帮助: (演职员表) 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

我在编译 nodejs zmq 时也遇到了很多问题。

对于 vcbuild.exe 的问题,只需将其添加到 PATH 中

对于其他问题,我可以使用 Windows 7.1 SDK Command Prompt编译

(菜单程序-> Microsoft Windows SDK v7.1-> Windows 7.1 SDK 命令提示符)

从提示开始:

npm install zmq

这是工作:)

在 cmd 中,根据您的版本设置 VisualStudio 路径为

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。 Bat 将生成与 Windows 相关的依赖项,并在 node-master

中添加文件夹名

一旦运行,将需要时间来构建文件。

然后在包含.gyp 文件的目录中使用命令

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

这将构建所有的依赖项。

我有同样的问题,并做了所有的魔术以上,唯一的事情,做我的魔术是从 https://github.com/atom/atom/issues/2435

”因为—— msvs _ version = 2013在由构建脚本运行时没有传递给 node-gyp。设置 GYP _ MSVS _ VERION = 2013 env 变量,它应该在此之后工作。”

砰,成功了

  1. 安装 Python 2.7(而不是3.x)
  2. 将路径添加到环境变量 PATH上包含 vcbuild.exe的目录
  3. 如果你需要 vcbuild.exe在这里得到它 https://github.com/kin9puppy/vcbuildFixForNode
< p > 更新3: https://www.npmjs.com/package/windows-build-tools

Npm install ——全局 Windows —— build-tools

下载并安装由 Microsoft 免费提供的 VisualC + + BuildTools2015。编译流行的本机模块需要这些工具。它还将安装 Python 2.7,适当地配置您的机器和 npm。

更新第二版:

Node-gyp 更新了自述文件包括 窗户操作指南

原文:

不需要整个视觉工作室,您可以下载只是构建工具

MicrosoftBuildTools2013: http://www.microsoft.com/en-us/download/details.aspx?id=40760

运行 cmd 设置全局标志使用2013版本:

npm config set msvs_version 2013 --global

在此之后,一切应该恢复正常,您的 npm install/node-gyp 重建将正常工作

我通过这个教程在 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节点。译注:

感谢 @ felixrieseberg,你只需要安装 Windows-build-tools npm 包,你是好去。

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

您不需要安装 VisualStudio。

您不需要安装 MicrosoftBuildTools。

来自回购协议:

安装完成后,npm 将自动执行这个模块 下载并安装 VisualC + + BuildTools2015,免费提供 这些工具需要编译流行的 它还将安装 Python 2.7,配置您的 机器和 npm 适当 < p > Windows Vista/7需要.NET Framework 4.5.1(目前 自动安装)

这两个安装都是无冲突的,这意味着它们不会与 Visual Studio、 C + + Build Tools 或 Python