如何将第三方dll、头文件和lib文件与节点N-API一起使用 我已经给出了使用C++ DLL的所有适当文件: 头文件 库文件 动态链接库

如何将第三方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 我

我尝试使用给定的文件,这样我们就可以在节点服务器中使用这个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

我的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" ]
            }
          ]
        }]
      ]