无法安装需要在Windows 7 X64 / VS2012编译节点模块(Cannot install

2019-07-18 03:02发布

我不能安装任何需要编译的模块。 所有这些失败,出现以下错误:

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

我的环境:

  • Windows 7企业版x64,版本6.1.7601
  • 节点的x86 0.8.16
  • NPM 1.2.0
  • 节点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,等等。

我没有这个问题的简短调查,找出与以下设置手动编译(调用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

我试着打电话给节点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

也许你会对此有一些想法?

谢谢。

Answer 1:

尝试 - 将设置全局:

npm config set msvs_version 2012 --global


Answer 2:

要做到这一点,而不VS2010安装,仅2012年,设置msvs_version标志:

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

按@Jacob评论

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



Answer 3:

更新V3: https://www.npmjs.com/package/windows-build-tools

NPM安装--global Windows的构建工具

下载并安装Visual C ++生成工具2015年,由微软免费提供。 这些工具都需要编译流行的原生模块。 它也将安装Python 2.7,适当地配置您的机器和故宫。

更新版:

节点GYP更新了他们的自述,包括HOW-TO窗户

原版的:

无需对整个Visual Studio中,您可以下载刚刚生成工具

微软构建工具2013: http://www.microsoft.com/en-us/download/details.aspx?id=40760

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

npm config set msvs_version 2013 --global

在这之后一切都应该恢复正常,你的NPM安装/节点GYP重建工作会



Answer 4:

只需添加--msvs_version = 2012

node-gyp rebuild --msvs_version=2012

要么

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


Answer 5:

我试图安装一个软件包时,Node.js的同样的问题 一些广泛googeling后,我发现这个walktrough: https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

当我按照这些步骤,我可以使用“故宫安装”没有任何问题。



Answer 6:

由于@felixrieseberg ,你只需要安装Windows的构建工具包NPM ,你是好去。

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

您不需要安装Visual Studio。

您将不再需要安装Microsoft构建工具。

从回购:

安装完成后,故宫将自动执行该模块,下载和安装的Visual C ++生成工具2015年,由微软免费提供。 这些工具都需要编译流行的原生模块。 它也将安装Python 2.7,适当地配置您的机器和故宫。

的Windows Vista / 7需要的.NET Framework 4.5.1(目前没有这个包自动安装)

这两种设备都没有冲突的,这意味着它们不乱用Visual Studio中,C的现有安装++构建工具,或Python。



Answer 7:

在Windows 8,它的工作我使用:

npm install -g node-gyp -msvs_version=2012

然后

npm install -g restify


Answer 8:

后挖的日子里,有人在IRC建议我尝试使用

Windows 7.1 SDK Command Prompt

快捷方式(指向C:\ WINDOWS \ SYSTEM32 \ CMD.EXE / E:ON / V:ON / T:0E / K “C:\ Program Files文件\微软的SDK \的Windows \ V7.1 \ BIN \ SetEnv.cmd” )。 我想你一定有旧的7.1 SDK(即使是在Windows 8.1),因为较新的使用msbuild.exe代替vcbuild.exe这是什么节点GYP希望,即使它的两倍旧如在此时节点:/

一旦该提示,我只好跑下获得86方面,因为编译器,否则抛出的错误有关的架构:

setenv.cmd /Release /x86

当时我能够成功运行试图使用节点GYP重新编译的东西NPM命令。



Answer 9:

我有同样的isuee及以上所有的魔法一样,就是做了魔法我的唯一的事情是从https://github.com/atom/atom/issues/2435

“因为--msvs_version = 2013不传递到节点GYP当它通过构建脚本运行。设置GYP_MSVS_VERSION = 2013环境变量,它应该工作后。”

砰! 有效



Answer 10:

在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


Answer 11:

为Windows 8 64位,安装ZMQ和protobuf的,下面为我工作:安装的Visual Studio 2012在命令行:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf


Answer 12:

我认为解决的办法是下载与.NET Framework 3.5的安装Microsoft Windows SDK的2008服务器

或者只是安装Visual Studio 2008。

这个问题是针对Windows构建节点GYP执行vcbuid.exe文件,由于某种原因,无法找到它。

谢谢



Answer 13:

  1. 安装Python 2.7(不3.x中)
  2. 路径添加到包含目录vcbuild.exe您的环境变量PATH
  3. 如果您需要vcbuild.exe在这里获得https://github.com/kin9puppy/vcbuildFixForNode


Answer 14:

我也有很多的问题,编译ZMQ的NodeJS。

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

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

(菜单程序 - >微软的Windows SDK V7.1 - >的Windows 7.1 SDK命令提示符)

而从提示:

npm install zmq

这是作品:)



Answer 15:

经过长期斗争,我已经关掉我的节点架构,x86和它的工作就像一个魅力。



Answer 16:

在CMD将Visual Studio设置路径取决于乌尔版本

Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%

Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%

Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%

在节点主机(从混帐下载原始节点模块)运行具有管理员权限vcbuild.bat。 vcbild.bat会产生相关的Windows的依赖,并会在节点主机添加文件夹名称发行

一旦它运行它需要时间来建立的文件。

然后在目录中有.gyp文件使用命令

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

这将建立所有的依赖。



Answer 17:

我解决了在Windows 8和Windows 10的亲本教程这个问题。 我尝试了很多次,解决这个问题有许多不同的解决方案,但只有这个工作对我来说: http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express -2015-ON-窗口-10-PRO-64我注意到,我没有使用nodist控制节点版本像本教程中,我用NVM和工作得很好,我没有测试这个教程,nodist。 我使用的节点5.2.0。



文章来源: Cannot install node modules that require compilation on Windows 7 x64/VS2012