【问题标题】:node-gyp build error windows x64node-gyp 构建错误窗口 x64
【发布时间】:2014-02-28 23:40:02
【问题描述】:

这是我迄今为止在我的 x64 操作系统上所做的:

  • 安装 Python (v2.7 -- 特别是 2.7.6) 并将其添加到系统路径 (C:\Python27)
  • 已安装 MS VS C++ 2010 Express 版本(我已经安装了 VS 2012 但没有 C++ 组件)
  • 为 Windows SDK 7.1 安装了编译器更新
  • 成功执行 node-gyp 配置(从我的附加目录下的 nodejs\node_modules 下 binding.gyp 所在)

  • 运行 node-gyp build(以管理员身份)** 这就是崩溃的原因,我只剩下:

这个错误:

C:\Program Files\nodejs\node_modules\msnodesql>node-gyp build
gyp info it worked if it ends with ok
gyp info using node-gyp@0.12.2
gyp info using node@0.10.25 | win32 | x64
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=x64' ]
Building the projects in this solution one at a time. To enable parallel build, please add the   "/m" switch.

LINK : 致命错误 LNK1181: 无法打开输入文件 'kernel32.lib' [C:\Program Files\nodejs\node_modules\msnodesql\build\sqlserver.vcxproj]

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:\Users\RNelson\AppData\Roaming\npm\node_modules\node-gyp\lib\build.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:797:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Users\\RNelson\\AppData\\Roaming\\npm\\node_modules\\node-      gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\Program Files\nodejs\node_modules\msnodesql
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok

关于发生了什么的任何想法?提前致谢!只是想将我的 node-sqlserver MS 驱动程序用于 Node.js

【问题讨论】:

  • 你能把错误的文字贴上去吗?不太清楚阅读
  • @Dalorzo:我最终解决了这个问题!!很快就会在这里发布解决方案。这需要大量工作,并且需要一些时间才能发布详细信息。敬请期待。
  • 解决方案是......
  • @Rachael 你的解决方案是什么?
  • @Juntae ,请参阅已接受。

标签: windows-7-x64 node-gyp node-sqlserver


【解决方案1】:

我遇到了类似的问题。我发现这个开关对我有帮助

--msvs_version=2012

例如

npm install --msvs_version=2012 <package>

【讨论】:

  • 我确认这也适用于 VS 2013。相反,只需使用--msvs_version=2013
  • Visual Studio 2015 不适合我,但 2013 可以。这向我表明您需要安装 Visual Studio 的节点工具。 github.com/Microsoft/nodejstools
  • 问题是关于重建 node-gyp -- 在这种情况下这个开关如何应用?
【解决方案2】:

npm config set msvs_version 2013 --global 为我工作,因为我使用 VS 节点工具,并且每次执行 npm 安装时都不需要指定 msvs_version。

我遇到了一个问题,即 npm 的配置 (c:\Users\username\ .npmrc) 的条目 msvs_version=2012 已过期。

【讨论】:

  • 真的很不错!我将再次尝试安装以在我的机器上进行测试。看起来问题的核心在这里!也许你应该把它添加到可以接触到最多人的 npm 页面?
  • 在新机器上再次救了我。
  • 迟到了,但你能详细说明为什么将 Visual Studio 版本设置为 2013 是成功的,尽管他安装了 VS 2010?我错过了什么?
  • 什么是.npmrc...???我在我的笔记本电脑上找不到...请帮助... ;)
【解决方案3】:

花了一段时间让这个工作(对我来说接受的答案不起作用,对我来说这只是一半的解决方案)我做了以下事情:

  1. 很遗憾,你必须有 Visual Studio(我安装了 Express Edition 2013 桌面)

  2. 已安装python 2.7.3(无需设置任何环境 变量)

  3. 以管理员身份运行 cmd 并转到您的项目根目录(您在哪里 package.json 文件)

  4. 首次运行:npm config set python C:\Python27\python.exe

  5. 然后:npm install -msvs_version=2013

诀窍在于命令npm config set python ...path_to_python_exe...,它将由 npm 提供给我猜需要 python 的依赖项。我不知道为什么将 python 设置为 env 变量是不够的。

【讨论】:

  • 我希望这有所作为 :(
  • @JonBiz,在执行上述步骤后你得到什么样的错误?
  • 第4步终于帮到了我!非常感谢!
  • @Kwoxer,我刚看了看,碰巧安装了 Python 2.7.6。我会尝试使用那个版本而不是一些不兼容的旧版本?我确实将我的 python 目录添加到系统路径。
  • 谢谢。非常适合我的 node-gyp 问题。
【解决方案4】:

如果以上都不起作用(我的情况 - Windows10 64bit

删除C:\Users\user_name\.node-gyp

删除 %AppData%/npm

删除%AppData%/npm-cache

然后再次安装node-gyp

node-gyp page 上的以下说明

我选择了选项 1 npm install --global --production windows-build-tools

【讨论】:

  • npm install --global --production windows-build-tools 似乎是最快最清晰的方式(Win10 x64上也是)
  • 我是win10 64,只能这样解决问题。
【解决方案5】:

用于在 windows 或任何其他操作系统中安装 node-gyp

首先你可能需要通过

下载node-gyp
$ npm install -g node-gyp-install

然后通过安装

$ npm install -g node-gyp

您可能需要以 root/管理员身份执行上述过程。

【讨论】:

    【解决方案6】:

    我在 2015 年尝试安装 Keystone 时遇到了同样的错误,我运行了你告诉我的所有内容,但它本身并不能正常工作。最后,我只需要运行命令

    "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\SetEnv.CMD" /Release /x64
    

    在运行命令之前设置环境。 (当它把你的窗口文本变成绿色时不要惊慌,它正在工作)。所以是的,我会以互联网上所有地方建议的相同方式进行安装和设置环境变量,但请确保在运行任何其他命令之前运行上述命令。它可能对你没有用,但希望它对其他人有用。如果这仍然不起作用,MSVS 版本 2010 对我有用,所以安装该版本并在运行 npm 命令时使用标志 -msvs_version=2010。

    【讨论】:

    • Angie,如果您仍然有错误消息,会很高兴看到!
    • @Rachael 是的!我会尽快回复你!
    • 嗯,现在我的 node-gyp 重建似乎挂在某个地方。我稍后会回复你@Rachael抱歉:(
    • 我没有 Microsoft SDKs 文件夹。
    【解决方案7】:

    对我来说,使用 VS express 的解决方案是简单地安装 Visual Studio 2013 Express for desktop(这是 2013 版中唯一为您提供开发人员命令提示符的解决方案)。打开开发者命令提示符(提升)并运行 NPM 安装命令。这不需要任何特殊的--msvs_version 参数,它就可以工作。

    【讨论】:

      【解决方案8】:

      我自己也遇到过这个问题,这就是我使用 Visual Studio 2010 解决的方法:

      安装以下软件包

      在 Windows SDK 命令提示符下使用npm install(您需要这个,因为它设置了额外的环境变量)。

      来源:node-gyp instructions for VS2010

      【讨论】:

        【解决方案9】:

        对我来说(Windows 7 64 位),

        我在这个问题上苦苦挣扎了半天,终于成功了。

        在路上

        1. 在控制面板中,我删除了所有 Python、Microsoft Visual Studio、Microsoft Redistributable 以及我为解决此问题而安装的一些东西。

        2. 窗口更新并重新启动。

        3. 安装了Python27Visual Studio 2013没有设置env-val

        4. npm install node-gyp -g

        5. 我遇到了同样的错误,但在 npm config set msvs_version 2013 --global 之后,它可以工作。

        【讨论】:

          【解决方案10】:

          有一个易于使用的windows build tools 全局节点包。你可以试试这个。

          【讨论】:

            【解决方案11】:

            我也遇到了类似的问题,这对我有用。

            • 删除了 Python 和 Visual Studio
            • 使用“使用 C++ 进行桌面开发”安装了 Python 27 和 Microsoft Visual Studio
            • 设置python路径npm config set python /path/to/executable/python
            • npm install node-gyp -g
            • node-gyp configure --msvs_version=2013

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-04-28
              • 1970-01-01
              • 1970-01-01
              • 2015-12-23
              相关资源
              最近更新 更多