Node.jsでC++の動的ライブラリを呼び出す方法
ノード.jsでは、ノード.js-ffiモジュールを使用してC++の動的リンクライブラリを呼び出すことができます。
Node-ffiを使用してC++ダイナミックライブラリを呼び出す方法を示します。
最初に node-ffi モジュールのインストールをする。
npm install ffi
App.jsなどのJSファイルを作成し、その中にC++のダイナミックライブラリを呼び出すためのコードを書く。
const ffi = require('ffi');
// 创建一个FFI对象,指定C++动态库的路径
const mylib = ffi.Library('./mylib.so', {
// 定义需要调用的C++函数
'add': ['int', ['int', 'int']]
});
// 调用C++函数
const result = mylib.add(2, 3);
console.log(result);
ffi.Library()関数は、上記コード中でC++の動的ライブラリをロードするために使われ、コールする関数のシグネチャを指定します。「’./mylib.so’」はC++の動的ライブラリのパス、「’add’」はC++関数の名前、そして「[‘int’, [‘int’, ‘int’]]」は関数の戻り値と引数の型です。
次に、C++の動的ライブラリをコンパイルして生成します。例えば、以下のC++コードをmylib.cppとして保存します。
extern "C" {
int add(int a, int b) {
return a + b;
}
}
以下のコマンドを使用して C++ の動的ライブラリ mylib.so をビルドして生成します。
g++ -shared -o mylib.so mylib.cpp
最後に、ターミナルでnode app.jsコマンドを実行すると、C++の動的ライブラリ内の関数が利用され出力が表示されます。