亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用C++編寫擴(kuò)展node.js(node-ffi版)

 更新時間:2018年12月18日 14:13:23   作者:李先靜  
今天小編就為大家分享一篇關(guān)于用C++編寫擴(kuò)展node.js(node-ffi版),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

用C++擴(kuò)展node.js(node-ffi版)

0.先安裝node.js和python(2.7)。請參考:

https://nodejs.org/
https://www.python.org

1.新建一個demo項(xiàng)目: 創(chuàng)建demo目錄,并進(jìn)入其中,然后運(yùn)行下面命令。

mkdir demo
cd demo
npm init

運(yùn)行npm init時,之后會生成一個package.json(具體內(nèi)容與輸入?yún)?shù)有關(guān)):

{
 "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-gyp
npm install ffi bindings --save

3.用C++編寫原生代碼( 為了讓目錄結(jié)構(gòu)整潔一點(diǎn),我們把代碼放到native只目錄下)。

下面的文件(native/demo.cc),添加一個Add方法,計(jì)算兩個數(shù)之和:

double Add(double a, double b) {
  return a+b;
}

4.寫一個Makefile(native/Makefile), 用來編譯C++代碼。

all:
  $(CC) -g -shared demo.c -o libdemo.dylib
clean:
  rm -frv libdemo*

5.編寫一個JS文件(demo.js)),讓它調(diào)用原生代碼。

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.運(yùn)行JS代碼,看看是否工作。

node demo.js

參考:

node-ffi

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Qt編譯OpenCV的實(shí)現(xiàn)步驟

    Qt編譯OpenCV的實(shí)現(xiàn)步驟

    本文主要介紹了Qt編譯OpenCV的實(shí)現(xiàn)步驟,通過詳細(xì)的步驟和說明,幫助開發(fā)者在Qt環(huán)境中成功集成并編譯OpenCV,從而為各類計(jì)算機(jī)視覺項(xiàng)目提供強(qiáng)大的支持,感興趣的可以了解一下
    2024-01-01
  • C/C++實(shí)現(xiàn)捕獲所有信號的示例詳解

    C/C++實(shí)現(xiàn)捕獲所有信號的示例詳解

    Linux的信號機(jī)制大部分情況下用不到,但是由于大部分信號的默認(rèn)處理是終止進(jìn)程,不正確處理會惹麻煩,所以我們來看看如何使用C/C++實(shí)現(xiàn)捕獲所有信號吧
    2024-03-03
  • php調(diào)用c++的方法

    php調(diào)用c++的方法

    這篇文章主要介紹了php調(diào)用c++的方法,需要的朋友可以參考下
    2014-01-01
  • 詳解C/C++如何獲取路徑下所有文件及其子目錄的文件名

    詳解C/C++如何獲取路徑下所有文件及其子目錄的文件名

    這篇文章主要為大家詳細(xì)介紹了在C/C++中如何獲取路徑下所有文件及其子目錄的文件名,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • C++靜態(tài)成員變量和靜態(tài)成員函數(shù)的使用方法總結(jié)

    C++靜態(tài)成員變量和靜態(tài)成員函數(shù)的使用方法總結(jié)

    下面小編就為大家?guī)硪黄狢++靜態(tài)成員變量和靜態(tài)成員函數(shù)的使用方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++內(nèi)聯(lián)函數(shù)詳情

    C++內(nèi)聯(lián)函數(shù)詳情

    這篇文章主要介紹了C++內(nèi)聯(lián)函數(shù),文章主要圍繞C++內(nèi)聯(lián)函數(shù)的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下,希望對大家有所幫助
    2021-11-11
  • Microsoft Visual C++ 6.0開發(fā)環(huán)境搭建教程

    Microsoft Visual C++ 6.0開發(fā)環(huán)境搭建教程

    這篇文章主要為大家詳細(xì)介紹了Microsoft Visual C++ 6.0開發(fā)環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • OpenCV實(shí)現(xiàn)平均背景法

    OpenCV實(shí)現(xiàn)平均背景法

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)平均背景法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 淺析c++函數(shù)參數(shù)和返回值

    淺析c++函數(shù)參數(shù)和返回值

    c++一直以來是一個關(guān)注效率的代碼,這樣關(guān)于函數(shù)的參數(shù)傳遞和返回值的接收,是重中之重,這篇文章主要介紹了c++函數(shù)參數(shù)和返回值,需要的朋友可以參考下
    2023-05-05
  • C/C++函數(shù)參數(shù)聲明解析int?fun()?與?int?fun(void)?的區(qū)別講解

    C/C++函數(shù)參數(shù)聲明解析int?fun()?與?int?fun(void)?的區(qū)別講解

    C++中int fun()和int fun(void)的區(qū)別在于函數(shù)參數(shù)的聲明方式,前者默認(rèn)允許任意參數(shù),而后者表示沒有參數(shù),通過清晰的實(shí)例源代碼,詳細(xì)解釋了它們在函數(shù)聲明和調(diào)用中的不同之處,這篇文章介紹了C/C++函數(shù)參數(shù)聲明int?fun()與int?fun(void)的差異,需要的朋友可以參考下
    2024-01-01

最新評論