国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

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

2019-11-20 12:37:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前提: 安裝好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è)目錄下,沒有默認(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是模塊名,需要與文件名保持一致,不然編譯沒問(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ò),找了很多資料,也沒解決,后來(lái)我把node.lib直接拷貝到工作目錄下,用命令行編譯成功了!但在vs2013中,錯(cuò)誤還是依舊,我怎么想都不對(duì),最后上官網(wǎng),發(fā)現(xiàn)人家的例子都沒有給出這種參數(shù),我就試著把這個(gè)東東刪除了,結(jié)果一切OK!大神們,誰(shuí)能給出一個(gè)正確的解釋?!

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 剑阁县| 富顺县| 藁城市| 兴隆县| 穆棱市| 天祝| 广饶县| 葫芦岛市| 嘉峪关市| 呼伦贝尔市| 湘潭县| 克山县| 临邑县| 梅州市| 祁连县| 浑源县| 固阳县| 镇沅| 西乌珠穆沁旗| 敖汉旗| 上饶县| 长海县| 韶山市| 托克逊县| 西峡县| 青神县| 英吉沙县| 沅陵县| 江孜县| 盐城市| 京山县| 平原县| 吕梁市| 东乌珠穆沁旗| 宜都市| 屏东市| 浙江省| 申扎县| 酉阳| 台中市| 沙雅县|