我已成功采用生物度量标准打印并使用futronic sdk发布到节点服务器。我希望能够同样使用此库在服务器中进行匹配,因为这是存储所有用户的生物度量标准打印的位置。我查了node-ffi
库,它帮助定义我导出的等效C函数并将其编译为.dll文件。
现在的挑战是我尝试移植ftrAnsiSDK
函数,但ftrScanAPI.dll
和ftrAnsiSDK.dll
文件无法编译在一起。它给出了这个错误:
...collect2.exe [Error] ld returned 5 exit status
当我编译和导出不依赖于这两个库的函数时,我的代码工作正常,并且可以在节点服务器中轻松导出和使用这些函数。请任何人给我一个暗示吗?
这是link to the repo。它由已使用的lib和.dll库组成。
对于服务器代码,这里是我想要实现的代码片段:
var libm = ffi.Library('lib/visystem', {
'HelloWorld': [ 'void', [] ],
'PrintErrorMessage': [ 'void', ['int'] ],
'CaprureImage': [ 'int', ['int','int','int'] ]});
HelloWord
和PrintErrorMessages
是我用作测试用例的方法,以确保在我继续执行主函数之前导出函数(可以从代码中看到函数定义) repo ..)取决于futronic lin and sdk。
我目前正在使用64位操作系统,我在32位机器上安装了相同的程序,但是它仍然没有编译和导出该功能。我使用的代码编辑器是Dev ++ C.
任何人都可以帮助甚至暗示如何实现这一目标吗?
答案 0 :(得分:0)
作为免责声明,我不熟悉Dev-C ++ IDE或MinGW开发。
但是,粗略地看一下你的github repo之后,根据你的 libvisystem.def 文件,看来你的DLL导出的唯一函数是:
在查看 libvisystem.a 库标题时也会确认:
因此,您应该首先将 dll.h 中的其余导出函数手动添加到def文件中,方式与已存在的函数类似,然后查看是否存在改变了一切。
注意:
我不确定Dev-C ++编译器/链接器是否忽略 __ declspec(dllexport)指令,而是使用def文件。也许SO上的其他人有一个想法。