我不能安装任何需要编译的模块。 所有这些失败,出现以下错误:
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:
- 安装Python 2.7(不3.x中)
- 路径添加到包含目录
vcbuild.exe
您的环境变量PATH
- 如果您需要
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