Skip to content

unhandled error with rebuilding better-sqlite3 on electron 35.1.4Β #1179

@nchilla

Description

@nchilla

electron version 35.1.4
electron/rebuild version 3.7.1
node version v20.12.1

I'm dealing with the classic problem of better-sqlite3 being installed with a different node version from electron's, but when trying to rebuild the package, I get βœ– Rebuild Failed, along with a monstrous node-gyp error log, printed (in part) below. Curious if anyone else has observed this and has guidance on how to resolve πŸ˜… Let me know if I can provide any more information.

gyp verb build/config.gypi writing out config file: /MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/config.gypi
gyp verb config.gypi checking for gypi file: /MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/config.gypi
gyp verb common.gypi checking for gypi file: /MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /opt/homebrew/opt/[email protected]/bin/python3.12
gyp info spawn args [
gyp info spawn args '/MY_COMPUTER_PATH/MY_PROJECT/node_modules/@electron/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/MY_COMPUTER_PATH/MY_PROJECT/node_modules/@electron/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/MY_COMPUTER_PATH/.electron-gyp/35.1.4',
gyp info spawn args '-Dnode_gyp_dir=/MY_COMPUTER_PATH/MY_PROJECT/node_modules/@electron/node-gyp',
gyp info spawn args '-Dnode_lib_file=/MY_COMPUTER_PATH/.electron-gyp/35.1.4/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp verb build type Release
gyp verb architecture arm64
gyp verb node dev dir /MY_COMPUTER_PATH/.electron-gyp/35.1.4
gyp verb python /opt/homebrew/opt/[email protected]/bin/python3.12
gyp verb `which` succeeded for `make` /usr/bin/make
gyp verb bin symlinks created symlink to "/opt/homebrew/opt/[email protected]/bin/python3.12" in "/MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/node_gyp_bins" and added to PATH
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
  touch ba23eeee118cd63e16015df367567cb043fed872.intermediate
  LD_LIBRARY_PATH=/MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/Release/lib.host:/MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps; mkdir -p /MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/Release/obj/gen/sqlite3; node copy.js "/MY_COMPUTER_PATH/MY_PROJECT/node_modules/better-sqlite3/build/Release/obj/gen/sqlite3" ""
  touch Release/obj.target/deps/locate_sqlite3.stamp
  cc -o Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o Release/obj/gen/sqlite3/sqlite3.c '-DNODE_GYP_MODULE_NAME=sqlite3' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DELECTRON_ENSURE_CONFIG_GYPI' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DUSING_ELECTRON_CONFIG_GYPI' '-DV8_COMPRESS_POINTERS' '-DV8_COMPRESS_POINTERS_IN_ISOLATE_CAGE' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_ENABLE_SANDBOX' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DHAVE_INT16_T=1' '-DHAVE_INT32_T=1' '-DHAVE_INT8_T=1' '-DHAVE_STDINT_H=1' '-DHAVE_UINT16_T=1' '-DHAVE_UINT32_T=1' '-DHAVE_UINT8_T=1' '-DHAVE_USLEEP=1' '-DSQLITE_DEFAULT_CACHE_SIZE=-16000' '-DSQLITE_DEFAULT_FOREIGN_KEYS=1' '-DSQLITE_DEFAULT_MEMSTATUS=0' '-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1' '-DSQLITE_DQS=0' '-DSQLITE_ENABLE_COLUMN_METADATA' '-DSQLITE_ENABLE_DESERIALIZE' '-DSQLITE_ENABLE_FTS3' '-DSQLITE_ENABLE_FTS3_PARENTHESIS' '-DSQLITE_ENABLE_FTS4' '-DSQLITE_ENABLE_FTS5' '-DSQLITE_ENABLE_GEOPOLY' '-DSQLITE_ENABLE_JSON1' '-DSQLITE_ENABLE_MATH_FUNCTIONS' '-DSQLITE_ENABLE_RTREE' '-DSQLITE_ENABLE_STAT4' '-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT' '-DSQLITE_LIKE_DOESNT_MATCH_BLOBS' '-DSQLITE_OMIT_DEPRECATED' '-DSQLITE_OMIT_GET_TABLE' '-DSQLITE_OMIT_PROGRESS_CALLBACK' '-DSQLITE_OMIT_SHARED_CACHE' '-DSQLITE_OMIT_TCL_VARIABLE' '-DSQLITE_SOUNDEX' '-DSQLITE_THREADSAFE=2' '-DSQLITE_TRACE_SIZE_LIMIT=32' '-DSQLITE_USE_URI=0' '-DNDEBUG' -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/src -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/openssl/config -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/openssl/openssl/include -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/uv/include -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/zlib -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/v8/include -I./Release/obj/gen/sqlite3  -O3 -fno-strict-aliasing -mmacosx-version-min=10.7 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -w -std=c99 -MMD -MF ./Release/.deps/Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o.d.raw   -c
  rm -f Release/sqlite3.a && ./gyp-mac-tool filter-libtool libtool  -static -o Release/sqlite3.a Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o
  c++ -o Release/obj.target/better_sqlite3/src/better_sqlite3.o ../src/better_sqlite3.cpp '-DNODE_GYP_MODULE_NAME=better_sqlite3' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DELECTRON_ENSURE_CONFIG_GYPI' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DUSING_ELECTRON_CONFIG_GYPI' '-DV8_COMPRESS_POINTERS' '-DV8_COMPRESS_POINTERS_IN_ISOLATE_CAGE' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_ENABLE_SANDBOX' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DBUILDING_NODE_EXTENSION' '-DNDEBUG' -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/src -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/openssl/config -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/openssl/openssl/include -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/uv/include -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/zlib -I/MY_COMPUTER_PATH/.electron-gyp/35.1.4/deps/v8/include -I./Release/obj/gen/sqlite3  -O3 -fno-strict-aliasing -mmacosx-version-min=10.7 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++20 -stdlib=libc++ -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -std=c++17 -stdlib=libc++ -MMD -MF ./Release/.deps/Release/obj.target/better_sqlite3/src/better_sqlite3.o.d.raw   -c
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:23:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/cppgc/common.h:8:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8config.h:13:2: error: "C++20 or later required."
   13 | #error "C++20 or later required."
      |  ^
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:24:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-array-buffer.h:12:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-local-handle.h:13:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-handle-base.h:8:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-internal.h:1268:37: error: a non-type template parameter cannot have type 'ExternalPointerTagRange' (aka 'TagRange<ExternalPointerTag>') before C++20
 1268 |   template <ExternalPointerTagRange tag_range>
      |                                     ^
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:24:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-array-buffer.h:13:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-memory-span.h:45:28: error: no member named 'ranges' in namespace 'std'
   45 | inline constexpr bool std::ranges::enable_view<v8::MemorySpan<T>> = true;
      |                       ~~~~~^
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-memory-span.h:47:28: error: no member named 'ranges' in namespace 'std'
   47 | inline constexpr bool std::ranges::enable_borrowed_range<v8::MemorySpan<T>> =
      |                       ~~~~~^
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-memory-span.h:168:35: error: no type named 'contiguous_iterator_tag' in namespace 'std'; did you mean 'output_iterator_tag'?
  168 |     using iterator_concept = std::contiguous_iterator_tag;
      |                              ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
      |                                   output_iterator_tag
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/iterator_traits.h:70:29: note: 'output_iterator_tag' declared here
   70 | struct _LIBCPP_TEMPLATE_VIS output_iterator_tag {};
      |                             ^
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:24:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-array-buffer.h:14:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-object.h:12:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-primitive.h:969:15: error: no matching function for call to 'ReadExternalPointerField'
  969 |     A value = I::ReadExternalPointerField<internal::kExternalStringResourceTag>(
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-primitive.h:991:15: error: no matching function for call to 'ReadExternalPointerField'
  991 |     A value = I::ReadExternalPointerField<internal::kExternalStringResourceTag>(
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-primitive.h:1014:15: error: no matching function for call to 'ReadExternalPointerField'
 1014 |     A value = I::ReadExternalPointerField<internal::kExternalStringResourceTag>(
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:24:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-array-buffer.h:14:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-object.h:913:9: error: no matching function for call to 'ReadExternalPointerField'
  913 |         I::ReadExternalPointerField<internal::kEmbedderDataSlotPayloadTag>(
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-object.h:935:9: error: no matching function for call to 'ReadExternalPointerField'
  935 |         I::ReadExternalPointerField<internal::kEmbedderDataSlotPayloadTag>(
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:26:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-context.h:473:7: error: no matching function for call to 'ReadExternalPointerField'
  473 |       I::ReadExternalPointerField<internal::kEmbedderDataSlotPayloadTag>(
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-context.h:492:7: error: no matching function for call to 'ReadExternalPointerField'
  492 |       I::ReadExternalPointerField<internal::kEmbedderDataSlotPayloadTag>(
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/better_sqlite3.cpp:4:
./src/util/macros.lzz:31:69: error: no template named 'CopyablePersistentTraits' in namespace 'v8'; did you mean 'NonCopyablePersistentTraits'?
   31 | template <class T> using CopyablePersistent = v8::Persistent<T, v8::CopyablePersistentTraits<T>>;
      |                                                                 ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                     NonCopyablePersistentTraits
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-persistent-handle.h:223:7: note: 'NonCopyablePersistentTraits' declared here
  223 | class NonCopyablePersistentTraits {
      |       ^
In file included from ../src/better_sqlite3.cpp:4:
./src/util/macros.lzz:142:142: error: no type named 'AccessorGetterCallback' in namespace 'v8'; did you mean 'AccessorNameGetterCallback'?
  142 | void SetPrototypeGetter (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, char const * name, v8::AccessorGetterCallback func);
      |                                                                                                                                          ~~~~^~~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                                              AccessorNameGetterCallback
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-object.h:157:7: note: 'AccessorNameGetterCallback' declared here
  157 | using AccessorNameGetterCallback =
      |       ^
./src/better_sqlite3.lzz:67:1: warning: cast from 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>)' to 'node::addon_context_register_func' (aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, void *)') converts to incompatible function type [-Wcast-function-type-mismatch]
   67 | NODE_MODULE_INIT(/* exports, context */) {
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:1302:3: note: expanded from macro 'NODE_MODULE_INIT'
 1302 |   NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME,                     \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1303 |                             NODE_MODULE_INITIALIZER)                  \
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:1271:3: note: expanded from macro 'NODE_MODULE_CONTEXT_AWARE'
 1271 |   NODE_MODULE_CONTEXT_AWARE_X(modname, regfunc, NULL, 0)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:1253:7: note: expanded from macro 'NODE_MODULE_CONTEXT_AWARE_X'
 1253 |       (node::addon_context_register_func) (regfunc),                  \
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/util/macros.lzz:142:142: error: no type named 'AccessorGetterCallback' in namespace 'v8'; did you mean 'AccessorNameGetterCallback'?
  142 | void SetPrototypeGetter (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, char const * name, v8::AccessorGetterCallback func)
      |                                                                                                                                          ~~~~^~~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                                              AccessorNameGetterCallback
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-object.h:157:7: note: 'AccessorNameGetterCallback' declared here
  157 | using AccessorNameGetterCallback =
      |       ^
./src/util/macros.lzz:150:35: error: no member named 'SetAccessor' in 'v8::ObjectTemplate'
  150 |         recv->InstanceTemplate()->SetAccessor(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^
./src/objects/database.lzz:17:17: error: no matching function for call to 'SetPrototypeGetter'
   17 |                 SetPrototypeGetter(isolate, data, t, "open", JS_open);
      |                 ^~~~~~~~~~~~~~~~~~
./src/util/macros.lzz:142:6: note: candidate function not viable: no known conversion from 'void (v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value> &)' to 'v8::AccessorNameGetterCallback' (aka 'void (*)(Local<Name>, const PropertyCallbackInfo<Value> &)') for 5th argument
  142 | void SetPrototypeGetter (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, char const * name, v8::AccessorGetterCallback func)
      |      ^                                                                                                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/objects/database.lzz:18:17: error: no matching function for call to 'SetPrototypeGetter'
   18 |                 SetPrototypeGetter(isolate, data, t, "inTransaction", JS_inTransaction);
      |                 ^~~~~~~~~~~~~~~~~~
./src/util/macros.lzz:142:6: note: candidate function not viable: no known conversion from 'void (v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value> &)' to 'v8::AccessorNameGetterCallback' (aka 'void (*)(Local<Name>, const PropertyCallbackInfo<Value> &)') for 5th argument
  142 | void SetPrototypeGetter (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, char const * name, v8::AccessorGetterCallback func)
      |      ^                                                                                                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/objects/database.lzz:180:21: warning: variable 'status' set but not used [-Wunused-but-set-variable]
  180 |                 int status = sqlite3_db_config(db_handle, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1, NULL);
      |                     ^
./src/objects/statement.lzz:16:17: error: no matching function for call to 'SetPrototypeGetter'
   16 |                 SetPrototypeGetter(isolate, data, t, "busy", JS_busy);
      |                 ^~~~~~~~~~~~~~~~~~
./src/util/macros.lzz:142:6: note: candidate function not viable: no known conversion from 'void (v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value> &)' to 'v8::AccessorNameGetterCallback' (aka 'void (*)(Local<Name>, const PropertyCallbackInfo<Value> &)') for 5th argument
  142 | void SetPrototypeGetter (v8::Isolate * isolate, v8::Local <v8::External> data, v8::Local <v8::FunctionTemplate> recv, char const * name, v8::AccessorGetterCallback func)
      |      ^                                                                                                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/better_sqlite3.cpp:4:
In file included from ./src/better_sqlite3.lzz:11:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node.h:79:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8.h:24:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-array-buffer.h:14:
In file included from /MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-object.h:11:
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/v8-persistent-handle.h:493:26: warning: cast from 'typename WeakCallbackInfo<ObjectWrap>::Callback' (aka 'void (*)(const WeakCallbackInfo<ObjectWrap> &)') to 'Callback' (aka 'void (*)(const WeakCallbackInfo<void> &)') converts to incompatible function type [-Wcast-function-type-mismatch]
  493 |                          reinterpret_cast<Callback>(callback), type);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/MY_COMPUTER_PATH/.electron-gyp/35.1.4/include/node/node_object_wrap.h:85:18: note: in instantiation of function template specialization 'v8::PersistentBase<v8::Object>::SetWeak<node::ObjectWrap>' requested here
   85 |     persistent().SetWeak(this, WeakCallback, v8::WeakCallbackType::kParameter);
      |                  ^
3 warnings and 19 errors generated.
make: *** [Release/obj.target/better_sqlite3/src/better_sqlite3.o] Error 1
rm ba23eeee118cd63e16015df367567cb043fed872.intermediate
Error: `make` failed with exit code: 2
    at ChildProcess.<anonymous> (/MY_COMPUTER_PATH/MY_PROJECT/node_modules/@electron/node-gyp/lib/build.js:215:23)

βœ– Rebuild Failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions