在window7下使用C++來給node.js編寫擴(kuò)展模塊的方法
來源:易賢網(wǎng) 閱讀:968 次 日期:2015-04-24 11:19:49
溫馨提示:易賢網(wǎng)小編為您整理了“在window7下使用C++來給node.js編寫擴(kuò)展模塊的方法”,方便廣大網(wǎng)友查閱!

在window7下使用C++來給node.js編寫擴(kuò)展模塊的方法

本文給大家介紹的是在window7下使用C++來給node.js編寫擴(kuò)展模塊的方法,附上一個簡單的hello實(shí)例,有需要的小伙伴可以參考下。

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

過程:

首先安裝GYP項目生成工具,npm install -g node-gyp 。

建立test目錄,這是我們的工作目錄,在此目錄下再建一個src目錄,用來存放C++源代碼,另新建一個名為binding.gyp的文本文件,這是gyp的項目文件,內(nèi)容如下:

代碼如下:

{

'targets':[{

'target_name':'hello',

'sources':['src/hello.cc']

}]

}

再寫一個簡單的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)行的話,會出現(xiàn)一個目錄----build,其下為你生成了vs2013的項目文件,這樣就可以在vs2013中進(jìn)行編輯與編譯了。

當(dāng)然也可以直接用命令 node-gyp build進(jìn)行編譯。

測試js程序如下:

代碼如下:

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

console.log(hello.hello());

其中遇到了一些問題,記錄如下:

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

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

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

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

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:在window7下使用C++來給node.js編寫擴(kuò)展模塊的方法
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)