ホームページ  >  記事  >  バックエンド開発  >  SWIG を使用して C ライブラリを Node.js に統合するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 13:50:03518ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。