方法一,使用VC++2010:
- 下載Node.js Source Code - http://nodejs.org/download/
- 下載並安裝Python 2.x - http://www.python.org/download/
- 將『;C:\Python27』加入path環境變數的最後(以2.7.5為例)
- 執行『C:\node-v0.10.21\vcbuild.bat』(以node-v0.10.21.tar.gz為例)
- 將『C:\node-v0.10.21\deps\uv\include』資料夾內所有檔案複製到『C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include』
- 將『C:\node-v0.10.21\deps\v8\include』資料夾內所有檔案複製到『C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include』
- 將『C:\node-v0.10.21\src\』內的『node.h』及『node_object_wrap.h』複製到『C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include』
- 開啟Visual Studio 2010建立Win32 Console Application的DLL專案(以newaddon名稱為例)
- 將『C:\node-v0.10.21\Release\node.lib』複製到專案資料夾
- 將範例程式碼貼上後編譯:
- 將編譯完的『newaddon.dll』檔名改為『newaddon.node』
(可以在Project > Properties > Configuration Properties > General 設定 Target Extension 為 .node 即會自動命名)
- 在『C:\』建立一資料夾(以Node.js為例)
- 在『C:\Node.js\』建立一個腳本檔『hello.js』內容如下:
- 將『C:\node-v0.10.21\Release\node.exe』複製到『C:\Node.js\』
- 下達cmd命令執行腳本『node hello.js』即可
方法二,使用node-gyp:
1. 首先請先安裝Python與VC++
2. 請參考站內此篇建立有npm的Node.js可攜環境
3. 使用npm安裝node-gyp
4. 建立一程式原始碼『newaddon.cc』內容如下(原始碼同方法一):
5. 建立一配置檔『binding.gyp』內容如下:
6. 在『C:\Node.js\』執行『node_modules\.bin\node-gyp configure』會建出『build』資料夾及專案配置檔案(注意:因本教學以可攜開發平台為基礎,所以執行之語法路徑必須完整正確,並以node.exe所在目錄為根目錄。)
7. 在『C:\Node.js\』執行『node_modules\.bin\node-gyp build』會編譯node程式在『build\Release』資料夾內
8. 在『C:\Node.js\』建立一個腳本檔『hello.js』內容如下:
9. 下達cmd命令執行腳本『node hello.js』即可
附註:
plugin | 指那些需編譯成執行檔,用以提供瀏覽器額外功能的東西。 |
extension | 使用瀏覽器支援的程式語法,用來改變瀏覽器功能與操作的東西。 |
theme | 使用瀏覽器支援的程式語法,用來改變瀏覽器外觀介面的東西。 |
addon | plugin +extension + theme = 總稱所有瀏覽器本體之外,用來改變瀏覽器的東西。 |
參考文獻:
http://wiki.gpii.net/index.php/Building_node.js_Windows_C/C%2B%2B_Addons
http://nodejs.org/api/addons.html
後記:
其實自己也搞了很久才搞定,
結果發現原因是一開始的hello.js腳本檔與hello.node插件檔,
這兩個檔名都是使用相同的hello的關係,
導致require抓不到hello.node插件的函式,
所以無論是什麼方法都一直沒有辦法成功_(:3」∠)_
另外值得一提的是,
兩種方法所編譯出來的newaddon.node,
檔案大小竟然差蠻多的,
方法一14KB而方法二卻33KB,
不曉得在更大的專案底下,
會不會也差異如此多呢OwO?
沒有留言:
張貼留言