Node.js N-API:运行时错误,因为未链接目标文件

我有问题。我从当地政府那里获得了一个C对象文件( src / knr12 / knr12.o ),该文件需要使用,因此我的软件已通过他们的认证。

因为我正在开发Web应用程序,所以我想将Node.js的N-API用于本机插件。经过几个小时的编码,我的代码得以编译,但是当我从 index.js 调用包装函数时,却遇到了运行时错误:

dyld:懒惰的符号绑定失败:找不到符号:_knr12_vers

这是我的代码:

main.c

napi_value knr12(napi_env env,napi_callback_info info) {
  ...
  char* zid = (char *)malloc(sizeof(char) * (len+1));
  ...
  // Contains the result of the getKnr12 function
  char* result = malloc(150);

  // -> The error is thrown in this function call
  getKnr12(zid,result);
  ...
}

knr12.c

int  knr12_vers(void);

...

void getKnr12(char* zid,char* result)
{
    printf("%s",knr12_vers());
    return;
}

这是我的 binding.gyp 文件:

{
    "targets": [{
        "target_name": "addons","sources": [
            "src/main.c","src/knr12/knr12.c"
        ]
    }]
}

在我删除 knr12.c 中的knr12_vers调用并进行重建后,一切正常,除了我没有想要的输出。

我认为所需目标文件的链接存在问题,但我不知道如何解决。

我做了很多尝试,将对象文件添加到 binding.gyp 源,库,link_settings中,但是没有任何效果。

我搜索了几个小时,但没有找到解决该问题的方法。

xiaoman1987 回答:Node.js N-API:运行时错误,因为未链接目标文件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2569952.html

大家都在问