npm i ssh2
以:
MSVCRT.lib(chandler4gs.obj): error LNK2019:未解析的外部符号__except_handler4_common在函数中引用git __except_handler4 (c: xxxxxxx sdk v2 node_modules yyyy大师 node_modules cpu-features 制造 cpufeatures。vcxproj]c: xxxxxxx git sdk v2 node_modules yyyy 大师node_modules cpu-features 制造 cpufeatures发布。节点:致命[c:SAPDevelopgitsdkv2masternode_modulesirpa_corenode_modulescpu-feature年代制造 cpufeatures.vcxproj]
如你所见,问题在cpu-features
。我能够查看MS Visual Studio的cpu-features
构建文件(通过运行npm i cpu-features
),我认为我找到了根本原因:节点模块(cpufeatures.node)使用/MT
选项编译(C/c++运行时将被静态链接)但DLL与cpu_features.lib
女巫本身就是由utils.lib
链接……cpu_features.lib
和utils.lib
这两个库是用/MD
开关编译的(C/c++运行时是动态链接的)
这是不对的。在带有Visual Studio的Windows上,链接到DLL的所有库必须使用与链接到C/c++运行时相同的选项。DLLcpufeatures.node
build fine在Visual Studio项目中为两个库手动更改/MD
为/MT
。
我对cmake
一无所知。
问题:如何在Windows上成功实现npm install ssh2
?
(我在这里创建了一个问题:https://github.com/mscdex/cpu-features/issues/3到目前为止没有任何用处。我知道cpu-features对于ssh2是可选的。另一个问题:如何告诉npm install ssh2
不要尝试构建cpu功能?)
Windows 10 Enterprise 64 bits 21H1 build 19043.1237
node v14.17.6
npm 6.14.15
node-gyp 8.2.0
cmake 3.21.3
Visual Studio Enterprise 2019 Version 16.11.3
替代问题的答案:
npm install nan
npm install ssh2 --no-optional