如何将第三方dll、头文件和lib文件与节点N-API一起使用 我已经给出了使用C++ DLL的所有适当文件: 头文件 库文件 动态链接库
我尝试使用给定的文件,这样我们就可以在节点服务器中使用这个C++ DLL。< /P> 问题是,当我尝试使用节点gyp构建时,它会抛出以下错误:如何将第三方dll、头文件和lib文件与节点N-API一起使用 我已经给出了使用C++ DLL的所有适当文件: 头文件 库文件 动态链接库,c++,node.js,node-gyp,C++,Node.js,Node Gyp,我尝试使用给定的文件,这样我们就可以在节点服务器中使用这个C++ DLL。< /P> 问题是,当我尝试使用节点gyp构建时,它会抛出以下错误: LINK : fatal error LNK1181: cannot open input file 'lib\MathUtils.lib' [C:\Development\Github\node-thin-client\service\build\interface.vcxproj] 我使用的节点版本是:8.11.2 节点gyp版本为:3.6.2 我
LINK : fatal error LNK1181: cannot open input file 'lib\MathUtils.lib' [C:\Development\Github\node-thin-client\service\build\interface.vcxproj]
我使用的节点版本是:8.11.2
节点gyp版本为:3.6.2
我的binding.gyp文件如下:
{
"variables": {
"dll_files": [
"lib/MathUtils.dll"
]
},
"targets": [
{
"target_name": "interface",
"sources": [
"src/interface/interface.cpp"
],
"include_dirs": [
"<!@(node -p \"require('node-addon-api').include\")",
"include"
],
"dependencies": [
"<!(node -p \"require('node-addon-api').gyp\")"
],
"libraries": [
"lib/MathUtils.lib"
],
"cflags!": ["-fno-exceptions"],
"cflags_cc!": ["-fno-exceptions"],
"defines": ["NAPI_CPP_EXCEPTIONS"]
}
]
}
{
“变量”:{
“dll_文件”:[
“lib/MathUtils.dll”
]
},
“目标”:[
{
“目标名称”:“接口”,
“资料来源”:[
“src/interface/interface.cpp”
],
“包含目录”:[
“我遇到了类似的问题。我知道这已经有一段时间了,但如果其他人在构建链接到其他DLL的节点插件时遇到此问题,我会这样做:
出现链接错误是因为项目文件是在项目下的/build
目录中生成的,但您引用了/lib/MathUtils.lib
。如果在Visual Studio中打开生成的.sln项目,您将看到问题。因此,您可以执行以下操作:
"libraries": [../lib/MathUtils.lib"]
或
这是正确的
"libraries": [ "<(module_root_dir)/lib/MathUtils.lib" ]
"conditions": [
["OS==\"win\"", {
"libraries": [ "<(module_root_dir)/tsflexnet/TSFlexnetCLib.lib" ],
"copies": [
{
"destination": "<(module_root_dir)/build/Release/",
"files": [ "<(module_root_dir)/tsflexnet/TSFlexnetCLib.dll" ]
}
]
}]
]