我以前从未处理过 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', 'png.c', '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 ...:DI 读到“库”中的引用必须指向 .a 文件,以防静态库,但甚至没有 .a 文件目录。所以我的关键问题是:我必须在 binding.gyp 文件中写什么才能正确引用 libpng-Library?
我会很高兴收到各种提示或附加信息!