欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用C++為node.js寫擴(kuò)展模塊

 更新時(shí)間:2015年04月22日 10:08:53   投稿:hebedich  
本文給大家介紹的是在window7下使用C++來(lái)給node.js編寫擴(kuò)展模塊的方法,附上一個(gè)簡(jiǎn)單的hello實(shí)例,有需要的小伙伴可以參考下。

前提: 安裝好node.js、Python2.7與visual studio 2013。

過(guò)程:
首先安裝GYP項(xiàng)目生成工具,npm install -g node-gyp 。
建立test目錄,這是我們的工作目錄,在此目錄下再建一個(gè)src目錄,用來(lái)存放C++源代碼,另新建一個(gè)名為binding.gyp的文本文件,這是gyp的項(xiàng)目文件,內(nèi)容如下:

復(fù)制代碼 代碼如下:

{
    'targets':[{
        'target_name':'hello',
        'sources':['src/hello.cc']
    }]
}

再寫一個(gè)簡(jiǎn)單的hello.cc,內(nèi)容如下:

#include <node.h>
using namespace v8;

Handle<Value> Hello(const Arguments& args) {
 HandleScope scope;
 return scope.Close(String::New("Hello world!"));
}

void init(Handle<Object> target) {
 NODE_SET_METHOD(target, "hello", Hello);
}

NODE_MODULE(hello, init)

然后運(yùn)行命令: node-gyp configure
如果正確運(yùn)行的話,會(huì)出現(xiàn)一個(gè)目錄----build,其下為你生成了vs2013的項(xiàng)目文件,這樣就可以在vs2013中進(jìn)行編輯與編譯了。
當(dāng)然也可以直接用命令 node-gyp build進(jìn)行編譯。

測(cè)試js程序如下:

復(fù)制代碼 代碼如下:

var hello = require('./hello');
console.log(hello.hello());

其中遇到了一些問(wèn)題,記錄如下:

1、C:\Users\Administrator.node-gyp\0.10.33這個(gè)目錄下,沒(méi)有默認(rèn)Debug目錄,在vs2013中編譯成debug文件時(shí)會(huì)提示 error LNK1104: cannot open file 'C:\Users\Administrator.node-gyp\0.10.33\Debug\node.lib' ,建立一個(gè)Debug目錄,把與你操作系統(tǒng)環(huán)境相同的目錄下的node.lib拷貝到其中就好了。

2、NODE_MODULE(hello, init)中的hello是模塊名,需要與文件名保持一致,不然編譯沒(méi)問(wèn)題,運(yùn)行時(shí)會(huì)出錯(cuò)。因?yàn)樵趓equire('./hello.node')時(shí),既去找相應(yīng)的文件,也匹配對(duì)應(yīng)的MODULE。

3、我是對(duì)應(yīng)著樸靈的《深入淺出node.js》這本書,并參考一些網(wǎng)頁(yè)進(jìn)行學(xué)習(xí)的,書給出的gyp項(xiàng)目文件中有一個(gè)conditions項(xiàng),'libraries' : ['-lnode.lib'] ,因?yàn)檫@一句,編譯時(shí)一直報(bào)錯(cuò):can't open node.lib,明明文件是存在的,但就是報(bào)錯(cuò),找了很多資料,也沒(méi)解決,后來(lái)我把node.lib直接拷貝到工作目錄下,用命令行編譯成功了!但在vs2013中,錯(cuò)誤還是依舊,我怎么想都不對(duì),最后上官網(wǎng),發(fā)現(xiàn)人家的例子都沒(méi)有給出這種參數(shù),我就試著把這個(gè)東東刪除了,結(jié)果一切OK!大神們,誰(shuí)能給出一個(gè)正確的解釋?!

以上所述上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • Koa2 之文件上傳下載的示例代碼

    Koa2 之文件上傳下載的示例代碼

    本篇文章主要介紹了Koa2 之文件上傳下載的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • node.js 全局變量的具體使用

    node.js 全局變量的具體使用

    這篇文章主要介紹了node.js 全局變量的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • node.js學(xué)習(xí)之?dāng)嘌詀ssert的使用示例

    node.js學(xué)習(xí)之?dāng)嘌詀ssert的使用示例

    assert 模塊主要用于編寫程序的單元測(cè)試時(shí)使用,通過(guò)斷言可以提早發(fā)現(xiàn)和排查出錯(cuò)誤。下面這篇文章主要給大家介紹了關(guān)于node.js學(xué)習(xí)之?dāng)嘌詀ssert的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 詳解Node.js中的Async和Await函數(shù)

    詳解Node.js中的Async和Await函數(shù)

    這篇文章主要介紹了Node.js中的Async和Await函數(shù)的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • nodejs如何解決高并發(fā)問(wèn)題

    nodejs如何解決高并發(fā)問(wèn)題

    這篇文章主要介紹了nodejs如何解決高并發(fā)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 使用nodejs連接mySQL寫接口全過(guò)程(增刪改查)

    使用nodejs連接mySQL寫接口全過(guò)程(增刪改查)

    這篇文章主要給大家介紹了關(guān)于使用nodejs連接mySQL寫接口(增刪改查)的相關(guān)資料,MySQL是一種常用的關(guān)系型數(shù)據(jù)庫(kù),它與Node.js的結(jié)合可以提供強(qiáng)大的數(shù)據(jù)存儲(chǔ)和檢索功能,需要的朋友可以參考下
    2023-12-12
  • NodeJS 實(shí)現(xiàn)多語(yǔ)言的示例代碼

    NodeJS 實(shí)現(xiàn)多語(yǔ)言的示例代碼

    這篇文章主要介紹了NodeJS 實(shí)現(xiàn)多語(yǔ)言的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 淺析node連接數(shù)據(jù)庫(kù)(express+mysql)

    淺析node連接數(shù)據(jù)庫(kù)(express+mysql)

    Node是一個(gè)Javascript運(yùn)行環(huán)境(runtime)。實(shí)際上它是對(duì)Google V8引擎進(jìn)行了封裝。V8引 擎執(zhí)行Javascript的速度非???,性能非常好。Node對(duì)一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好
    2015-11-11
  • better?sqlite3安裝node?gyp原生模塊編譯prebuild-install

    better?sqlite3安裝node?gyp原生模塊編譯prebuild-install

    這篇文章主要為大家介紹了Nodejs關(guān)于原生模塊編譯node-gyp?+?prebuild-install?(以安裝?better-sqlite3為例)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 如何讓Nodejs支持H5 History模式(connect-history-api-fallback源碼分析)

    如何讓Nodejs支持H5 History模式(connect-history-api-fallback源碼分析)

    這篇文章主要介紹了如何讓Nodejs支持H5 History模式(connect-history-api-fallback源碼分析),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05

最新評(píng)論