节点 gyp 构建错误 Windows X64:"致命错误 LNK1181:无法打开输入文件'kernel32.lib'"



这是我到目前为止在x64 OS上所做的事情:

  • 安装了Python(v2.7-特定于2.7.6),并将其添加到系统路径(C: Python27)

  • 已安装MS VS C 2010 Express版本(我已经有VS 2012,但没有C 组件)

  • 安装了Windows SDK 7.1

    的编译器更新
  • 成功地执行了节点GYP configure(从我的附加组件 nodejs node_modules下的binding.gyp位于nodejs node_modules)

  • 运行node-gyp build(作为管理员)**这是崩溃的,让我感到:

此错误:

C:Program Filesnodejsnode_modulesmsnodesql>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:WindowsMicrosoft.NETFrameworkv4.0.30319msbuild.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.

链接:致命错误lnk1181:无法打开输入文件'kernel32.lib'[c: program文件 nodejs nodejs node_modules msnodesql msnodesql build sqlserver.vcxproj]

gyp ERR! build error
gyp ERR! stack Error: `C:WindowsMicrosoft.NETFrameworkv4.0.30319msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:UsersRNelsonAppDataRoamingnpmnode_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: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 Filesnodejsnode_modulesmsnodesql
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok

关于正在发生的事情的任何想法?

我也有类似的问题。我发现这种开关帮助了我

--msvs_version=2012

所以例如

npm install --msvs_version=2012 <package>

npm config set msvs_version 2013 --global在我使用vs节点工具时为我工作,并且每次进行NPM安装时,您都不需要指定MSVS_Version。

我有一个问题,即NPM的config(c: users username .npmrc)具有输入MSVS_VERSION = 2012,它已过时。

花了一段时间让我开始工作(对我来说,答案不起作用,对我来说只是解决方案的一半),我确实遵循:

  1. 可悲的是,您必须拥有Visual Studio(我安装了Express Edition 2013对于桌面)

  2. 安装了Python 2.7.3(您不必设置任何环境变量)

  3. 运行CMD作为管理员,然后转到项目root(您在哪里package.json文件)

  4. 第一次运行:npm config set python C:Python27python.exe

  5. 然后: npm install -msvs_version=2013

技巧是在命令npm config set python ...path_to_python_exe...中,它将由NPM提供给我需要Python的依赖项。我不知道为什么将Python设置为Env变量还不够。

如果上述所有操作都无法使用(我的情况 - Windows> Windows10 64bit

delete C: USER USER_NAME .node-gyp

delete %appdata%/npm

delete %appdata%/npm-cache

和安装节点gyp 再次

在节点GYP页面上的指令

i选择选项1 npm install-global - 制作Windows-Build-tools

用于安装节点 - Windows或任何其他OS

中的GYP

首先,您可能必须通过

下载节点GYP
$ npm install -g node-gyp-install

然后通过

安装
$ npm install -g node-gyp

您可能需要执行上述过程作为root/indurandortor。

我现在在2015年尝试安装keystone和我现在有同样的错误您告诉我的一切都跑了,但它并没有用它自己的工作。最后,我只需要运行命令

"C:Program FilesMicrosoft SDKsWindowsv7.1binSetEnv.CMD" /Release /x64

在运行命令之前要设置环境。(当它使窗户文本绿色转动时,不要吓坏了)。所以,是的,我将在Internet上到处都以相同的方式进行安装并设置环境变量建议,但请确保在运行任何其他命令之前运行上述命令。它可能对您没有用,但希望它对其他人有用。如果仍然不起作用,MSVS版本2010对我有用,请安装该版本并在运行NPM命令时使用flag -msvs_version =2010。

<<对我来说,与VS Express一起使用的解决方案就是简单地安装Visual Studio 2013 Express for Desktop(这是唯一为您提供开发人员命令提示符的一种,截至2013年版本)。OPEN 开发人员命令提示(高架)并运行NPM安装命令。这不需要任何特殊的 --msvs_version参数,它只是起作用。

我本人遇到了这个问题,这就是我使用Visual Studio 2010来解决它的方式:

安装以下软件包

  • Python 2.7
  • Visual C Studio 2010 Express
  • Windows SDK 7.1注意:如果您在安装时会出现错误,则此链接可能会帮助您。
  • Visual Studio 2010 SP1
  • Visual C 2010 SP1 SP1编译器更新Windows SDK 7.1

从Windows SDK命令提示符中使用npm install(您需要此功能,因为它设置了其他环境变量)。

来源:VS2010的节点GYP指令

对我(Windows 7 64bit),

我在这个问题上挣扎了半天,终于奏效了。

在我的路上

  1. 在控制面板上,我删除了所有Python,Microsoft Visual Studio,Microsoft Redistibutable以及有关解决此问题的内容。

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

  3. 安装了python27和Visual Studio 2013 没有设置Env-Val

  4. npm install node-gyp -g

  5. 我有同样的错误,但是在npm config set msvs_version 2013 --global之后,它起作用了。

有一个易于使用Windows Build Tools Global Node软件包。您可以尝试一下。

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

  • 删除了Python和Visual Studio
  • 安装了Python 27和Microsoft Visual Studio,并带有"桌面开发,c &quot"
  • 设置Python Path npm config set python /path/to/executable/python
  • npm install node-gyp -g
  • node-gyp configure --msvs_version=2013

只是遇到了同样的问题。安装NVM(Node版本管理器),然后打开您的CMD,然后使用NVM install node@,然后使用依赖关系所需的版本。如果您不知道可能需要尝试使用不同版本的版本,我将节点恢复回14.15.0版,然后使用NPM安装,一切顺利进行!希望这有帮助!

在PowerShell中安装powershell的chocolatey,并带有管理员权限:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

安装Microsoft构建Visual Studio的工具所需的版本:https://community.chocalyy.org/packages?

在我的情况下:

choco install visualstudio2019buildtools

并安装工作负载:

cinst visualstudio2019-workload-vctools

与节点16.16.0合作如果使用NVM。重新安装节点版本。一切都很好。

最新更新