rebuild: Failed Rebuilding canvas: error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::shared_ptr __cdecl v8::ArrayBuffer::GetBackingStore(void)"
Well, I have a dead simple Electron app with only canvas and nan as dependencies alongside electron and react, running on a Windows 11 (21H2) machine.
What I’m trying to do is to rebuild canvas for electron using electron-rebuild. However, It’s failing with the following error :
Canvas.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::shared_ptr<class v8::BackingStore> __cdecl v8::ArrayBuffer::GetBackingSto
re(void)" (__imp_?GetBackingStore@ArrayBuffer@v8@@QEAA?AV?$shared_ptr@VBackingStore@v8@@@std@@XZ) referenced in function "void __cdecl parsePNGArgs(class v8::Local<class
v8::Value>,struct PngClosure &)" (?parsePNGArgs@@YAXV?$Local@VValue@v8@@@v8@@AEAUPngClosure@@@Z) [C:\Users\ebrah\Desktop\NFT_Generator-master\node_modules\canvas\build\ca
nvas.vcxproj]
CanvasRenderingContext2d.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::shared_ptr<class v8::BackingStore> __cdecl v8::ArrayBuf
fer::GetBackingStore(void)" (__imp_?GetBackingStore@ArrayBuffer@v8@@QEAA?AV?$shared_ptr@VBackingStore@v8@@@std@@XZ) [C:\Users\ebrah\Desktop\NFT_Generator-master\node_modu
les\canvas\build\canvas.vcxproj]
ImageData.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::shared_ptr<class v8::BackingStore> __cdecl v8::ArrayBuffer::GetBacking
Store(void)" (__imp_?GetBackingStore@ArrayBuffer@v8@@QEAA?AV?$shared_ptr@VBackingStore@v8@@@std@@XZ) [C:\Users\ebrah\Desktop\NFT_Generator-master\node_modules\canvas\buil
d\canvas.vcxproj]
C:\Users\ebrah\Desktop\NFT_Generator-master\node_modules\canvas\build\Release\canvas.node : fatal error LNK1120: 1 unresolved externals [C:\Users\ebrah\Desktop\NFT_Genera
tor-master\node_modules\canvas\build\canvas.vcxproj]
Here are ALL my system/app information
-
Operating System

-
Architecture : x64 (Typical Intel Core-I7 processor 9750H)
-
Global Environment
- Node v16.9.1 (using nvm)
- NPM 7.21.1
- node-gyp v8.4.0
-
Application Details
- Dependencies
"dependencies": { "canvas": "2.8.0", "electron": "16.0.1", "nan": "2.15.0", "react": "^16.13.1", "react-dom": "^16.13.1" }, "devDependencies": { "@babel/core": "^7.11.6", "@babel/preset-env": "^7.11.5", "@babel/preset-react": "^7.10.4", "babel-loader": "^8.1.0", "css-loader": "^4.3.0", "electron-rebuild": "^3.2.5", "electron-reload": "^1.5.0", "sass": "^1.26.11", "sass-loader": "^10.0.2", "style-loader": "^1.2.1", "webpack": "^5.64.1", "webpack-cli": "^4.9.1" }
What I was doing
After running npm i I ran npm run rebuild which delegates to electron-rebuild -f -w canvas, and the error showed up along with some other warnings
What I was expecting
canvas to be built correctly to the correct version of electron I’m using, for this error to stop ruining my business.

Waiting for your reply.
P.S. This is how the executon of electron-rebuild looks like on Git Bash / CMD on windows (also the same applies for electron-rebuild.cmd)

About this issue
- Original URL
- State: open
- Created 3 years ago
- Reactions: 2
- Comments: 20
workd for me.
I case you use it: replace CanvasRenderingContext2D with SKRSContext2D
Full log on my machine: https://gist.github.com/hansSchall/621b030d3cbde724178b427707b1219a