Я пытаюсь использовать модуль sqlite3 в дочернем процессе с электроном, но получаю ошибку неопределенного символа.Кроме того, ошибка возникает только тогда, когда я запускаю программу из node.js электрона, но когда я запускаю программу из обычного node.js, все работает нормально.Я думаю, что проблема может быть связана с «нативностью» модуля sqlite3, и я попытался electron-rebuild
, npm --build-from-source
, они не помогли.
main.js:
const { fork } = require('child_process');
fork('fork');
fork.js:
const sqlite3 = require('sqlite3');
package.json:
{
"name": "bugreproduce_sqlite",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"sqlite3": "^4.0.2"
},
"devDependencies": {
"electron": "^3.0.5"
}
}
вывод:
> ./node_modules/electron/dist/electron .
/home/myuser/Programming/javascript/bugreproduce_sqlite/node_modules/electron/dist/electron: symbol lookup error: /home/myuser/Programming/javascript/bugreproduce_sqlite/node_modules/sqlite3/lib/binding/node-v64-linux-x64/node_sqlite3.node: undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorENS_14SideEffectTypeE