0.先安裝node.js和python(2.7)。請參考:
https://nodejs.org/
https://www.python.org
1.新建一個demo項目: 創建demo目錄,并進入其中,然后運行下面命令。
mkdir democd demonpm init
運行npm init時,之后會生成一個package.json(具體內容與輸入參數有關):
{ "name": "demo", "version": "1.0.0", "description": "a demo for node call native functions", "main": "demo.js", "scripts": { "test": "echo /"Error: no test specified/" && exit 1" }, "keywords": [ "node" ], "author": "Li XianJing", "license": "ISC"}
2.安裝編譯工具和頭文件。
sudo npm install -g node-gypnpm install ffi bindings --save
3.用C++編寫原生代碼( 為了讓目錄結構整潔一點,我們把代碼放到native只目錄下)。
下面的文件(native/demo.cc),添加一個Add方法,計算兩個數之和:
double Add(double a, double b) { return a+b;}
4.寫一個Makefile(native/Makefile), 用來編譯C++代碼。
all: $(CC) -g -shared demo.c -o libdemo.dylibclean: rm -frv libdemo*
5.編寫一個JS文件(demo.js)),讓它調用原生代碼。
var ffi = require('ffi');var demo = ffi.Library('./native/libdemo', { 'Add': [ 'double', [ 'double', 'double'] ]});console.log(demo.Add(12345, 54321));
7.編譯C++程序。
make -C native
8.運行JS代碼,看看是否工作。
node demo.js
參考:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答