SWIG を使用して C ライブラリを Node.js に統合するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-07 13:50:03
オリジナル
514 人が閲覧しました

How Can I Integrate C   Libraries Into Node.js Using SWIG?

Node.js での C ライブラリの使用

Node.js では、C ライブラリを利用するさまざまな方法が提供されています。 SWIG を使用した実証済みのソリューションは次のとおりです。

最新の SWIG バージョン 3.0 では、Node.js 用のインターフェイス ジェネレーターが提供され、C ライブラリをシームレスに統合できます。

実装例

たとえば、ヘッダー ファイル myclass.h を持つ C ライブラリを考えてみましょう:

#include <iostream>

class MyClass {
    int myNumber;
public:
    MyClass(int number): myNumber(number) {}
    void sayHello() { std::cout << "Hello, my number is:" << myNumber << std::endl; }
};
ログイン後にコピー

SWIG Interface File

このクラスを Node.js で使用するには。 js で SWIG インターフェイス ファイルを作成します mylib.i:

%module "mylib"
%{
#include "myclass.h"
%}
%include "myclass.h"
ログイン後にコピー

バインディング ファイルとコマンド

次に、バインディング ファイル binding.gyp:

< を作成します。 🎜>
{
  "targets": [
    {
      "target_name": "mylib",
      "sources": [ "mylib_wrap.cxx" ]
    }
  ]
}
ログイン後にコピー
最後に、次のコマンドを実行します。

swig -c++ -javascript -node mylib.i
node-gyp build
ログイン後にコピー

Node.js 統合

ここで、同じフォルダー内で Node.js を実行すると、次のことが可能になります。 C ライブラリにアクセスします:

> var mylib = require("./build/Release/mylib")
> var c = new mylib.MyClass(5)
> c.sayHello()
Hello, my number is:5
ログイン後にコピー
SWIG は自然なインターフェイスを自動的に検出して生成するため、C コードを Node.js アプリケーションに簡単に統合できます。

以上がSWIG を使用して C ライブラリを Node.js に統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート