在 Node.js 中使用现有的 C 代码作为本机附加组件

我以前从未接触过 C 或 C++,所以请善待我:) 我想将此 Repo 中的此 C 代码用作节点模块:

https://github.com/torvalds/pesconvert

我读到这可以通过 Node.Js Native Addons 来完成,但我能找到的所有示例都是关于集成 C++ 代码的。 我已经安装了 node-gyp 和 windows-build-tools 来编译代码,但是因为我使用的是 windows,所需的 png.h 库没有本地安装。我下载了 libpng V1.6.37 并将其复制到我的项目中的 lib/lpng1637 目录中。 现在我必须编写 binding.gyp 文件,但我不知道如何编写它以便正确包含库。

  'targets': [
    {
      'target_name': 'pesconvert','sources': [ 'pes.c','png.c','svg.c','main.c','cairo.c','pes.h'
                ],'include_dirs' : ['lib/lpng1637'],'dependencies' : ['libpng'],'libraries': ['-L/lib/lpng1637/libpng.a']
    },{
      'target_name': 'libpng','type': 'static_library','sources': [ 'png.h','pngconf.h','pngdebug.h','pnginfo.h','pngpriv.h','pngstruct.h','example.h','pngerror.c','pngget.c','pngmem.c','pngpread.c','pngread.c','pngrio.c','pngrtran.c','pngrutil.c','pngset.c','pngtest.c','pngtrans.c','pngwio.c','pngwrite.c','pngwtran.c','pngwutil.c'
      ],'include_dirs' : ['lib/lpng1637']
    }
  ]
}

我尝试了很多变体,这是我最新的masterpeace...目录中甚至没有 .a 文件。 所以我的关键问题是:我必须在我的 binding.gyp 文件中写什么才能正确引用 libpng-library?

我会很高兴收到各种提示或附加信息!

xuexiaojuanxxj13400 回答:在 Node.js 中使用现有的 C 代码作为本机附加组件

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

大家都在问