node.js c++的擴展

在項目中,使用webkit做爲客戶端訪問web服務器,webkit須要訪問本地資源,node.js沒有提供相應的支持,因此準備本身寫一個用c++做爲編程語言的node.js擴展,現將最簡單的helloworld實現過程記錄以下:node

須要安裝的軟件:Git-2.5.1-32-bit.exe   python-2.7.11.msi  node-v4.3.1-x86.msi   vs.net 或 msbuild python

1.到github網站下載,示例源碼 https://github.com/lupomontero/node-cpphelloc++

在DOS提示符下執行下面的命令git

# Install node-gyp globally if not installed yet
npm install -g node-gyp

# Clone, build and test git clone git://github.com/lupomontero/node-cpphello.git cd node-cpphello node-gyp configure build npm test

在執行node-gyp configure 時,須要用到msbuild2012,個人電腦安裝的vs2015,出錯,提示,找不到cpphello.vcxproj文件中的第19行,找不到定義的$(VCTargetsPath)\Microsoft.Cpp.Default.props文件,經分析
$(VCTargetsPath)定義的路徑不對,在註冊表時查找 VCTargetsPath 的定義,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0找到$(VCTargetsPath)的定義項,可能好幾個,改爲$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\')),重點是140(vs2015),其它的版本做相應的修改。
在當前目錄下生成./build/Release/cpphello.node

2.調用cpphello.node
與一個test.js文件,內容爲

var cpphello = require('./build/Release/cpphello');
console.log(cpphello.foo());github

好了,在dos黑窗口裏調用,試試吧  node test.jsweb

相關文章
相關標籤/搜索