Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Cara mudah untuk memanggil c menggunakan nodejs

Cara mudah untuk memanggil c menggunakan nodejs

WBOY
Lepaskan: 2023-05-25 16:29:08
asal
1853 orang telah melayarinya

Dalam pembangunan projek, kadangkala kita perlu memanggil beberapa fail perpustakaan atau fail dll yang ditulis dalam bahasa C Pada masa ini, kita boleh menggunakan nodej untuk memanggil kaedah C untuk mencapai ini.

Menulis fail perpustakaan dalam bahasa c

Untuk menggunakan nodej untuk memanggil fail perpustakaan c, kita perlu terlebih dahulu memahami cara menulis fail perpustakaan c. Di sini kami mengambil menulis fail perpustakaan tambahan yang mudah sebagai contoh.

1. Buat fail c

Pertama, kita perlu mencipta fail c add.c Kandungan fail adalah seperti berikut:

#include <stdio.h>

int add(int a, int b) {
  printf("c add function has been called
");
  return a + b;
}
Salin selepas log masuk

Hanya satu fungsi ditakrifkan. dalam fail c iniadd, mengambil dua parameter integer dan mengembalikan jumlahnya.

2. Susun fail c

Seterusnya, kita perlu menggunakan pengkompil untuk menyusun fail c ke dalam perpustakaan pautan dinamik atau perpustakaan pautan statik. Di sini kita mengambil pengkompil gcc di bawah sistem Linux sebagai contoh.

Perintah kompilasi perpustakaan pautan dinamik adalah seperti berikut:

$ gcc -fPIC -shared -o libadd.so add.c
Salin selepas log masuk

Perintah kompilasi perpustakaan pautan statik adalah seperti berikut:

$ gcc -c add.c
$ ar rcs libadd.a add.o
Salin selepas log masuk

Parameter -fPIC di sini adalah untuk membiarkan pengkompil menjana kod bebas kedudukan, supaya Keupayaan untuk berkongsi segmen kod dengan betul merentas ruang alamat proses yang berbeza. Pustaka pautan dinamik yang dijana atau fail perpustakaan pautan statik ialah libadd.so dan libadd.a masing-masing.

nodejs memanggil fail perpustakaan c

Dengan fail perpustakaan c, kita boleh memanggil fungsi dalam fail perpustakaan ini dalam nodejs. Di sini kita mengambil nodej di bawah sistem Linux sebagai contoh.

1. Gunakan modul ffi-napi

Modul ffi Node.js boleh menggunakan perpustakaan dinamik luaran, perpustakaan statik dan fungsi perpustakaan C. Tetapi dalam versi Node.js baharu, modul ini mungkin menghadapi masalah. Jika kita perlu menggunakan modul ffi yang lebih stabil, kita boleh memilih untuk menggunakan modul ffi-napi untuk memanggil perpustakaan C dalam proses.

Kita boleh menggunakan arahan berikut untuk memasang modul ffi-napi dalam projek:

$ npm install ffi-napi
Salin selepas log masuk

2 Cipta fail nodejs

Seterusnya, kita perlu mencipta fail nodejs. app.js , kandungan fail adalah seperti berikut:

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

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

console.log(libadd.add(1, 2));
Salin selepas log masuk

Perlu diperhatikan di sini bahawa parameter pertama fungsi Library() ialah laluan ke fail perpustakaan c, dan akhiran nama fail mungkin berbeza pada platform yang berbeza. Parameter kedua ialah objek yang mengandungi nama dan jenis parameter bagi fungsi yang akan diimport, di sini kami mengimport fungsi add dan menentukan jenis parameter dan jenis nilai pulangannya.

Akhirnya kami memanggil fungsi add dan mencetak hasil pulangan.

3. Jalankan program

Kita boleh memasukkan arahan berikut dalam baris arahan untuk menjalankan program nodejs:

$ node app.js
Salin selepas log masuk

Hasil output adalah seperti berikut:

c add function has been called
3
Salin selepas log masuk

Ringkasan

Menggunakan nodejs untuk memanggil fail perpustakaan c boleh meningkatkan kecekapan pembangunan projek dengan sangat baik, dan juga menyediakan pembangun nodejs dengan lebih banyak kemungkinan pembangunan. Langkah asas boleh diringkaskan sebagai:

  1. Tulis fail pustaka bahasa c dan susunkannya ke dalam pustaka dinamik atau pustaka statik.
  2. Gunakan modul ffi-napi untuk mengimport fungsi dalam perpustakaan c.
  3. Panggil fungsi yang diimport dalam nodejs untuk pembangunan.

Menggunakan nodej untuk memanggil fail perpustakaan c boleh meningkatkan prestasi dan kestabilan aplikasi dan membantu kami menyelesaikan pembangunan projek dengan lebih baik.

Atas ialah kandungan terperinci Cara mudah untuk memanggil c menggunakan nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan