用ffi调用dylib库
有一个特性需要调用第三方库libsync,在node.js里可以用ffi来实现
首先稍微包装了一下,ffi也是支持异步调用的,但是API比较麻烦,包装以后调用起来会比较容易
1 | var ffi = require("ffi"); |
libsync就是依赖的动态链接库,在linux下是.so文件,而在Mac下是.dylib文件,ffi会根据当前的平台,自动查找合适的后缀:
1 | /** |
所以接下来就是需要把源代码.c,.h编译成.so和.dylib库(开发需要.dylib,生产环境需要.so)
mac下编译dylib文件的命令也很简单:
1 | $ gcc -dynamiclib -o c.dylib a.c b.c |
客户端实际调用的代码:
1 | libsync.file_chunk(localPath, chunkPath, 0, function (err, flag) { |