W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
擴(kuò)展是動(dòng)態(tài)鏈接的共享對(duì)象,可以與C 和C++ 庫(kù)鏈合。目前API 是相當(dāng)復(fù)雜,涉及數(shù)個(gè)庫(kù)的知識(shí):
Node 靜態(tài)編譯所有組件成可執(zhí)行文件。當(dāng)您編譯您的模塊時(shí),您不必考慮以上庫(kù)的連結(jié)。 制作一個(gè)小型擴(kuò)展能達(dá)到以下效用(C++ 除外):
exports.hello = 'world'; 創(chuàng)建文件hello.cc:
#include <v8.h>
using namespace v8;
extern "C" void
init (Handle<Object> target)
{
HandleScope scope;
target->Set(String::New("hello"), String::New("World"));
}
此源文件需要編譯成hello.node(二進(jìn)制擴(kuò)展)。需要?jiǎng)?chuàng)建一個(gè) python 文件wscript:
srcdir = '.'
blddir = 'build'
VERSION = '0.0.1'
def set_options(opt):
opt.tool_options('compiler_cxx')
def configure(conf):
conf.check_tool('compiler_cxx')
conf.check_tool('node_addon')
def build(bld):
obj = bld.new_task_gen('cxx', 'shlib', 'node_addon')
obj.target = 'hello'
obj.source = 'hello.cc'
執(zhí)行node-waf configure build 將會(huì)創(chuàng)建您的擴(kuò)展文件至build/default/hello.node。 node-waf 是http://code.google.com/p/waf/[WAF],基於python 的編譯系統(tǒng)。node-waf 為使用者提供輕易。 所有Node 擴(kuò)展必須輸出一函數(shù)init ,并包含此聲明: extern 'C' void init (Handle
至現(xiàn)時(shí)為止,此乃完整的擴(kuò)展說(shuō)明文件。請(qǐng)閱http://github.com/ry/node_postgres 以取得真實(shí)范例。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: