nodejsを使用してcを呼び出す簡単な方法

WBOY
リリース: 2023-05-25 16:29:08
オリジナル
1816 人が閲覧しました

プロジェクト開発では、C 言語で書かれたライブラリ ファイルや DLL ファイルを呼び出す必要がある場合がありますが、このとき、nodejs を使用して C メソッドを呼び出すことができます。

C 言語でライブラリ ファイルを作成する

nodejs を使用して C ライブラリ ファイルを呼び出すには、まず C ライブラリ ファイルの作成方法を理解する必要があります。ここでは例として、単純な追加ライブラリ ファイルを作成します。

1. C ファイルを作成します

まず、C ファイルadd.cを作成する必要があります。ファイルの内容は次のとおりです:

#include <stdio.h>

int add(int a, int b) {
  printf("c add function has been called
");
  return a + b;
}
ログイン後にコピー

この c ファイルには、2 つの整数パラメーターを受け取り、その合計を返す関数 add が定義されているだけが含まれています。

2. c ファイルをコンパイルする

次に、コンパイラを使用して、c ファイルをダイナミック リンク ライブラリまたはスタティック リンク ライブラリにコンパイルする必要があります。ここでは、Linux システムでの gcc コンパイラを例として取り上げます。

ダイナミック リンク ライブラリのコンパイル コマンドは次のとおりです:

$ gcc -fPIC -shared -o libadd.so add.c
ログイン後にコピー

スタティック リンク ライブラリのコンパイル コマンドは次のとおりです:

$ gcc -c add.c
$ ar rcs libadd.a add.o
ログイン後にコピー

-fPIC パラメータこれは、コンパイラに位置に依存しないコードを生成させ、コード セグメントを異なるプロセス アドレス空間間で正しく共有できるようにするためです。生成されるダイナミック リンク ライブラリ ファイルまたはスタティック リンク ライブラリ ファイルは、それぞれ libadd.so および libadd.a です。

nodejs は C ライブラリ ファイルを呼び出します

C ライブラリ ファイルを取得したら、nodejs でこのライブラリ ファイル内の関数を呼び出すことができます。ここでは、例として Linux システムでの nodejs を取り上げます。

1. ffi-napi モジュールの使用

Node.js の ffi モジュールでは、外部の動的ライブラリ、静的ライブラリ、C ライブラリ関数を使用できます。ただし、新しい Node.js バージョンでは、このモジュールに問題が発生する可能性があります。より安定した ffi モジュールを使用する必要がある場合は、ffi-napi モジュールを使用してプロセス内で C ライブラリを呼び出すことを選択できます。

次のコマンドを使用して ffi-napi モジュールをプロジェクトにインストールできます:

$ npm install ffi-napi
ログイン後にコピー

2.nodejs ファイルを作成します

次に、nodejs ファイルを作成する必要があります。 file app.js、ファイルの内容は次のとおりです。

const ffi = require('ffi-napi');

const libadd = ffi.Library('./libadd', {
  'add': ['int', ['int', 'int']]
});

console.log(libadd.add(1, 2));
ログイン後にコピー

ここで、Library() 関数の最初のパラメータは、次のパスであることに注意してください。 C ライブラリ ファイル、および異なるプラットフォームでのファイル名は、サフィックスも異なる場合があります。 2 番目のパラメーターは、インポートする関数の名前とパラメーターの型を含むオブジェクトです。ここでは、add 関数をインポートし、そのパラメーターの型と戻り値の型を指定します。

最後に、add 関数を呼び出し、戻り結果を出力しました。

3. プログラムを実行します

コマンド ラインに次のコマンドを入力して、nodejs プログラムを実行できます:

$ node app.js
ログイン後にコピー

出力結果は次のとおりです:

c add function has been called
3
ログイン後にコピー

概要

nodejs を使用して C ライブラリ ファイルを呼び出すと、プロジェクトの開発効率が大幅に向上し、nodejs 開発者により多くの開発の可能性が提供されます。基本的な手順は次のように要約できます。

  1. C 言語ライブラリ ファイルを作成し、それをダイナミック ライブラリまたはスタティック ライブラリにコンパイルします。
  2. ffi-napi モジュールを使用して、C ライブラリに関数をインポートします。
  3. 開発のために、nodejs でインポートされた関数を呼び出します。

nodejs を使用して C ライブラリ ファイルを呼び出すと、アプリケーションのパフォーマンスと安定性が向上し、プロジェクト開発をより適切に完了するのに役立ちます。

以上がnodejsを使用してcを呼び出す簡単な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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