我有一個使用node-addon-api介面的節點添加模塊。
{
"targets": [
{
"target_name": "mod",
"cflags!": [ "--std=c 0x -fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"sources": [
"./src/index.cpp",
...
],
"include_dirs": [
...,
"<!@(node -p \"require('node-addon-api').include\")"
],
"libraries": [
...,
"/usr/lib/libgfortran.so.5"
],
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
}
]
}
這將生成一個我可以從 NodeJS 加載的模塊 require('./mod.node')
從 makefile 進行此編譯的步驟是什么?
uj5u.com熱心網友回復:
如果您的 Node 插件使用您必須構建的 3rd 方庫,則可以通過三種方式來實作:
- 創建一個
Makefile啟動您的第 3 方庫和 Node 插件的編譯(使用我的其他答案中的命令),然后使用librariesgyp 檔案的部分將您的插件與該庫鏈接- 這是最簡單的選擇 - 將 3rd 方庫完全轉換為 gyp - 這是最好的選擇 - 我維護了許多 Node 插件,并為它們創建了 gyp 構建系統(我在你的 gyp 中看到了 Fortran,所以你可能知道
netcdfandhdf5) - 但它是相當復雜 - 將您的 Node 插件轉換為經典插件
Makefile或cmake- 這是迄今為止最難的,并且不會立即產生任何好處 - 您必須node-gyp從頭開始重新實作- 即使是 Node 的核心團隊也不愿意這樣做
uj5u.com熱心網友回復:
通常,您不會將 aMakefile與a一起使用,node-gyp因為gyp它本身就是一個成熟的品牌。
要構建這個你應該打電話
npx node-gyp build 或只是node-gyp build如果node_modules/.bin在您的路徑
如果您使用 yeoman 來做到這一點,它已經自動為您構建了一次,而不需要node-gyp- 因為 if 將它包含在它的包中。您可以從中呼叫它的副本,/usr/lib/node_modules/yo/node_modules/node-gyp/bin/node-gyp.js但通常您應該將其安裝為專案的依賴項。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/409190.html
標籤:
上一篇:節點匯入陳述句無法識別../前綴
