Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从node.js调用C代码_C++_C_Node.js - Fatal编程技术网

C++ 从node.js调用C代码

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

假设我有C代码的源文件和头文件(bus-driver.C和bus-driver.h)我可以从node.js调用其中的函数吗

例如公共汽车司机


我想从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");