最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

mkdir demo
cd demo
npm init

運(yùn)行npm init時(shí),之后會(huì)生成一個(gè)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),添加一個(gè)Add方法,計(jì)算兩個(gè)數(shù)之和:

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

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

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

5.編寫一個(gè)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)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • C語言三子棋的實(shí)現(xiàn)思路到過程詳解

    C語言三子棋的實(shí)現(xiàn)思路到過程詳解

    所謂三子棋,就是三行三列的棋盤,玩家可以和電腦下棋,率先連成三個(gè)的獲勝。這篇文章主要為大家詳細(xì)介紹了如何通過C語言實(shí)現(xiàn)三子棋小游戲,感興趣的小伙伴可以嘗試一下
    2023-02-02
  • C++讀寫配置項(xiàng)的基本操作

    C++讀寫配置項(xiàng)的基本操作

    這篇文章主要介紹了C++讀寫配置項(xiàng)的基本操作,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2021-01-01
  • C語言實(shí)現(xiàn)三子棋小游戲詳解

    C語言實(shí)現(xiàn)三子棋小游戲詳解

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++利用opencv實(shí)現(xiàn)單目測(cè)距的實(shí)現(xiàn)示例

    C++利用opencv實(shí)現(xiàn)單目測(cè)距的實(shí)現(xiàn)示例

    本文主要介紹了C++利用opencv實(shí)現(xiàn)單目測(cè)距的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++實(shí)現(xiàn)廣度優(yōu)先遍歷圖

    C++實(shí)現(xiàn)廣度優(yōu)先遍歷圖

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)廣度優(yōu)先遍歷圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • typedef和#define的用法以及區(qū)別

    typedef和#define的用法以及區(qū)別

    以下是對(duì)C/C++語言中,typedef和#define的用法以及區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下
    2013-10-10
  • c++ 成員函數(shù)與非成員函數(shù)的抉擇

    c++ 成員函數(shù)與非成員函數(shù)的抉擇

    盡量用類的非成員函數(shù)以及友元函數(shù)替換類的成員函數(shù) 例如一個(gè)類來模擬人People
    2013-01-01
  • C++實(shí)現(xiàn)折半插入排序(BinaryInsertSort)

    C++實(shí)現(xiàn)折半插入排序(BinaryInsertSort)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)折半插入排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++ decltype用法舉例說明

    C++ decltype用法舉例說明

    decltype是C++11添加的一個(gè)新的關(guān)鍵字,目的是選擇并返回操作數(shù)的數(shù)據(jù)類型,重要的是,在此過程中編譯器分析表達(dá)式并得到它的類型,卻不實(shí)際計(jì)算表達(dá)式的值,今天通過本文給大家介紹C++ decltype用法,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • C++之const限定符詳解

    C++之const限定符詳解

    這篇文章主要為大家介紹了C++之const限定符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評(píng)論

普兰店市| 兴仁县| 大埔区| 邓州市| 天峨县| 同德县| 仲巴县| 淮安市| 景东| 灵丘县| 天气| 罗定市| 隆子县| 浦县| 岳西县| 巨鹿县| 湛江市| 磐石市| 安义县| 张家川| 绍兴县| 兴仁县| 基隆市| 鄄城县| 德惠市| 太和县| 色达县| 长子县| 合肥市| 龙川县| 江口县| 涿鹿县| 宜宾市| 东乌| 邹城市| 牡丹江市| 白河县| 兴城市| 通许县| 兰溪市| 睢宁县|