链接:致命错误LNK1181:无法打开输入文件'C:\ OpenSSL-Win64\lib\libeay32.lib'

Sud*_*mar 7 intellij-idea visual-studio-2013 npm-install

我有Windows 7 - 64位与Visual Studio 2013终极版.我正在运行npm install命令并获得以下错误:

npm info it worked if it ends with ok
npm info using npm@3.8.3
npm info using node@v5.10.0
npm info attempt registry request try #1 at 10:01:07 AM
npm http request GET http://registry.npmjs.org/fsevents
npm http 304 http://registry.npmjs.org/fsevents
npm info attempt registry request try #1 at 10:01:09 AM
npm http request GET http://registry.npmjs.org/ursa
npm http 304 http://registry.npmjs.org/ursa
npm info lifecycle ursa@0.9.4~preinstall: ursa@0.9.4
npm info linkStuff ursa@0.9.4
npm info lifecycle ursa@0.9.4~install: ursa@0.9.4

> ursa@0.9.4 install C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa
> node-gyp rebuild


C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
gyp info it worked if it ends with ok
gyp info using node-gyp@3.3.1
gyp info using node@5.10.0 | win32 | x64
gyp info spawn C:\Python27\python.EXE
gyp info spawn args [ 'C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\gyp\\gyp_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=2013',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\sudhir_kumar05\\mockingbird\\node_modules\\ursa\\build\\config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\sudhir_kumar05\\.node-gyp\\5.10.0\\include\\node\\common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=C:\\Users\\sudhir_kumar05\\.node-gyp\\5.10.0',
gyp info spawn args   '-Dnode_gyp_dir=C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=node.lib',
gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\sudhir_kumar05\\mockingbird\\node_modules\\ursa',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'C:\\Users\\sudhir_kumar05\\mockingbird\\node_modules\\ursa\\build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn C:\Program Files (x86)\MSBuild\12.0\bin\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.
  ursaNative.cc
..\src\ursaNative.cc(157): warning C4244: 'argument' : conversion from 'ssize_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(172): warning C4244: 'argument' : conversion from 'ssize_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(378): warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(379): warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(686): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(734): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(779): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(826): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(945): warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
..\src\ursaNative.cc(1003): warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
  win_delay_load_hook.c
LINK : fatal error LNK1181: cannot open input file 'C:\OpenSSL-Win64\lib\libeay32.lib' [C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa\build\ursaNative.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:100:13)
gyp ERR! stack     at ChildProcess.emit (events.js:185:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\sudhir_kumar05\mockingbird\node_modules\ursa
gyp ERR! node -v v5.10.0
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
npm info lifecycle ursa@0.9.4~install: Failed to exec install script
npm WARN install:ursa@0.9.4 ursa@0.9.4 install: `node-gyp rebuild`
npm WARN install:ursa@0.9.4 Exit status 1
npm info lifecycle mockingbird@1.0.150~preinstall: mockingbird@1.0.150
npm info linkStuff mockingbird@1.0.150
npm info lifecycle mockingbird@1.0.150~install: mockingbird@1.0.150
npm info lifecycle mockingbird@1.0.150~postinstall: mockingbird@1.0.150
npm info lifecycle mockingbird@1.0.150~prepublish: mockingbird@1.0.150
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.14
npm WARN mongodb-core@1.2.32 requires a peer of kerberos@~0.0 but none was installed.
npm info ok
Run Code Online (Sandbox Code Playgroud)

我尝试在IntelliJ终极试用版中运行相同的项目,但得到相同的错误.

小智 25

我遇到了同样的麻烦.答案是 - RTFM.

OpenSSL(正常,不轻)与Node.js安装的位数相同.OpenSSL必须安装在特定的安装目录(C:\ OpenSSL-Win32或C:\ OpenSSL-Win64)中如果出现错误:找不到指定的模块.将libeay32.dll从OpenSSL bin目录复制到此模块的bin目录,或Windows\System32.

这有一个问题 - 你需要1.0.2(到这里).版本1.1.0没有libea32.dll.

接下来,我遇到了以下安装ursa的问题:

  • 节点GYP.认为这不是一个真正的问题,但在之后重建是成功的
  • 编译器.我有VS2010express并且再次出错,但是现在安装ursa时MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe 尝试了一些食谱但是只有在VS2013express安装后我才能获得成功和另一个错误
  • SSL.使用Open-SSL 64 1.0.2

祝你好运
,力量可能与你同在


小智 7

对于安装 OpenSSL 版本 1.1.0k 的 Windows,库已从 libeay32.lib 重命名为 libcrypto.dll。因此,解决此问题的简单方法是在 Windows 中使用 mklink 建立符号链接。在 Windows 10 上使用节点版本 10.13.0 进行测试。

以管理员身份启动 CMD

cd /d C:\OpenSSL-Win64\lib
mklink libeay32.lib libcrypto.lib
Run Code Online (Sandbox Code Playgroud)

输出应匹配:

symbolic link created for libcrypto32.lib <<===>> libcrypto.lib
Run Code Online (Sandbox Code Playgroud)

我已经这样做了,并且在使用 x509 时没有出现任何其他问题。

来源: https ://github.com/Southern/node-x509/issues/49#issuecomment-514265447

  • 这是最好的答案(要么创建符号链接,要么只是使用其他名称创建文件的副本) (2认同)