如何让node-gyp在Windows 7平台上工作
在尝试编译标准的“Hello World”示例[2]时,我尝试在Windows 7 Node.js平台上使用node-gyp失败[3].注意:在尝试npm安装contextify w或w-o“-g”时,node-gyp以类似的方式失败[3],因此这些可能是相关问题.
组态: > node-gyp 0.12.2 参考文献: [2] https://github.com/joyent/node/tree/master/test/addons/hello-world [3]“hello world”[2]项目中的“node-gyp rebuild”产生以下2个错误:
并发出以下2个警告:
完整的追踪如下: C:sigmanode_modulesx>node-gyp rebuild gyp info it worked if it ends with ok gyp info using node-gyp@0.12.2 gyp info using node@0.10.24 | win32 | x64 gyp info spawn python gyp info spawn args [ 'C:UsersAnybodyAppDataRoamingnpmnode_modulesnode-gypgypgyp_main.py',gyp info spawn args 'binding.gyp',gyp info spawn args '-f',gyp info spawn args 'msvs',gyp info spawn args '-G',gyp info spawn args 'msvs_version=auto',gyp info spawn args '-I',gyp info spawn args 'C:sigmanode_modulesxbuildconfig.gypi',gyp info spawn args 'C:UsersAnybodyAppDataRoamingnpmnode_modulesnode-gypaddon.gypi',gyp info spawn args 'C:UsersAnybody.node-gyp .10.24common.gypi',gyp info spawn args '-Dlibrary=shared_library',gyp info spawn args '-Dvisibility=default',gyp info spawn args '-Dnode_root_dir=C:UsersAnybody.node-gyp .10.24',gyp info spawn args '-Dmodule_root_dir=C:sigmanode_modulesx',gyp info spawn args '--depth=.',gyp info spawn args '--generator-output',gyp info spawn args 'C:sigmanode_modulesxbuild',gyp info spawn args '-Goutput_dir=.' ] gyp info spawn msbuild 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=x64' ] Building the projects in this solution one at a time. To enable parallel build,please add the "/m" switch. test.cpp C:UsersAnybody.node-gyp .10.24depsuvincludewin.h(8738): error C2371: 'SYSTEM_POWER_STATUS' : redefinition; different basic types [C:sigmanode_modulesxbuildtest.vcxproj] C:UsersAnybody.node-gyp .10.24depsuvincludewin.h(8737) : see declaration of 'SYSTEM_POWER_STATUS' C:UsersAnybody.node-gyp .10.24depsuvincludewin.h(13513): warning C4005: 'UNALIGNED' : macro redefinition [C:sigmanode_modulesxbuildtest.vcxproj] C:Program Files (x86)Microsoft Visual Studio 10.0VCincludecrtdef s.h(502) : see previous definition of 'UNALIGNED' C:UsersAnybody.node-gyp .10.24depsuvincludemswsock.h(26): warning C4068 : unknown pragma [C:sigmanode_modulesxbuildtest.vcxproj] C:UsersAnybody.node-gyp .10.24depsuvinclude_mingw.h(33): warning C4068: unknown pragma [C:sigmanode_modulesxbuildtest.vcxproj] C:UsersAnybody.node-gyp .10.24depsuvinclude_mingw.h(51): fatal error C1 189: #error : ERROR: You must use a GNU Compiler. [C:sigmanode_modulesxbuildtest.vcxproj] gyp ERR! build error gyp ERR! stack Error: msbuild failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:UsersAnybodyAppDataRoamingnpm node_modulesnode-gyplibbuild.js:267:23) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:789:12) gyp ERR! System Windows_NT 6.1.7601 gyp ERR! command "node" "C:UsersAnybodyAppDataRoamingnpmnode_modulesnode-gypbinnode-gyp.js" "rebuild" gyp ERR! cwd C:sigmanode_modulesx gyp ERR! node -v v0.10.24 gyp ERR! node-gyp -v v0.12.2 gyp ERR! not ok
虽然这个问题是一个月大的时间,但我最终在网路上搜索,这是搜索结果的一部分.
所以这里是一个不应该做的但是它的作品答案. 首先,我不熟悉node-gyp或整个visual studio编译和东西,我真的很感到遗憾的是,依赖于python(一个非常无声的WTF)的node-gyp, 所以没有已知的原因nodejs版本早于0.10.22(我现在运行,所以我假定它在哪里开始) 如果您搜索系统中的文件“uv.h”,您可能会得到一些结果,如果您以前安装了nodejs版本,否则您可以继续阅读. 我以前的0.10.3 nodejs版本有uv.h到node-gyp一些喜欢 <DRIVERLETTER>:Users&;USERNAME>.node-gyp .10.3depsuv 所以如果你阅读了npm文档,你会发现npm安装的参数
所以最后的命令应该是 npm install <package> --nodedir="<DRIVERLETTER>:Users&;USERNAME.node-gyp .10.3" 你可能会收到一些警告,但是应该成功完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |