1

我以前从未处理过 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?

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

4

0 回答 0