C++ 从node.js调用C代码
假设我有C代码的源文件和头文件(bus-driver.C和bus-driver.h)我可以从node.js调用其中的函数吗 例如公共汽车司机C++ 从node.js调用C代码,c++,c,node.js,C++,C,Node.js,假设我有C代码的源文件和头文件(bus-driver.C和bus-driver.h)我可以从node.js调用其中的函数吗 例如公共汽车司机 我想从node.js调用这些函数。nodeffi似乎是最简单的方法。 我没有测试它,所以它可能有问题,我现在没有意识到 但我会建议你做一些类似的事情,遵循规则。 安装: 为您的总线驱动程序生成一个库,如果您没有,我们称之为libbusdriver 然后在javascript中执行类似的操作: var ffi = require('ffi'); var l
我想从node.js调用这些函数。nodeffi似乎是最简单的方法。 我没有测试它,所以它可能有问题,我现在没有意识到 但我会建议你做一些类似的事情,遵循规则。 安装: 为您的总线驱动程序生成一个库,如果您没有,我们称之为libbusdriver 然后在javascript中执行类似的操作:
var ffi = require('ffi');
var libbusdriver = ffi.Library('libbusdriver', {
'bus_init': [ 'void', [ 'void' ] ],
'bus_write': [ 'void', [ 'string' ] ],
});
libbusdriver.bus_init();
libbusdriver.bus_write("Hello");
如果有帮助,请告诉我。也许是复制的?或者看看:我读过,但不懂。如果你能给我一个关于bus driver.h的例子,那会非常有用,谢谢。我试过了,在执行node.js程序后出现了这个错误错误错误:动态链接错误:libusbdriver.so:无法打开共享对象文件:没有这样的文件或目录库和test.js文件在同一个目录中,我试图重命名library.so和.a,但没有区别您是将其命名为libusbdriver还是libbusdriver?很抱歉,我将其更改为libbusdriver,但得到相同的错误。将node.js程序和库放在同一个目录中是真的吗?是否生成了打开共享标志的库?我使用gcc-c libbusdriver.c-o libbusdriver.o编译并使用ar rcs libbusdriver libbusdriver.o生成库
var ffi = require('ffi');
var libbusdriver = ffi.Library('libbusdriver', {
'bus_init': [ 'void', [ 'void' ] ],
'bus_write': [ 'void', [ 'string' ] ],
});
libbusdriver.bus_init();
libbusdriver.bus_write("Hello");