Skip to content

Where to start to make this "build" on raspberry pi with debian #41

@linus-amg

Description

@linus-amg

As the title suggest, I am trying to make this build on my raspberry pi, I tried with node v8, v11, v14 but always get stuck with node-gyp rebuild. The ftd driver seems to be installed and .h files linked okay, because I can use it with python for example, not sure what the issue is here, but I saw similar open and closed issues in here without a solution.

I am looking forward to fix this myself, but I'd appreciate a general advice or direction in which to go to find out what the issue is.

error:

root@DietPi:/home/sftpuser01/zrx/experiment/node_modules/ftdi# npm run postinstall

> [email protected] postinstall /home/sftpuser01/zrx/experiment/node_modules/ftdi
> node-gyp rebuild

make: Entering directory '/home/sftpuser01/zrx/experiment/node_modules/ftdi/build'
  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:
../src/ftdi_device.h:74:28: error: ‘Handle’ has not been declared
   74 |     static void Initialize(Handle<Object> target);
      |                            ^~~~~~
../src/ftdi_device.h:74:34: error: expected ‘,’ or ‘...’ before ‘<’ token
   74 |     static void Initialize(Handle<Object> target);
      |                                  ^
../src/ftdi_device.h: In function ‘void AsyncQueueWorkerPersistent(Nan::AsyncWorker*)’:
../src/ftdi_device.h:123:7: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
  123 |     , (uv_after_work_cb)AsyncExecuteCompletePersistent
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/ftdi_device.cc:12:
../src/ftdi_driver.h: At global scope:
../src/ftdi_driver.h:14:6: error: variable or field ‘InitializeList’ declared void
   14 | void InitializeList(Handle<Object> target);
      |      ^~~~~~~~~~~~~~
../src/ftdi_driver.h:14:21: error: ‘Handle’ was not declared in this scope
   14 | void InitializeList(Handle<Object> target);
      |                     ^~~~~~
../src/ftdi_driver.h:14:34: error: expected primary-expression before ‘>’ token
   14 | void InitializeList(Handle<Object> target);
      |                                  ^
../src/ftdi_driver.h:14:36: error: ‘target’ was not declared in this scope
   14 | void InitializeList(Handle<Object> target);
      |                                    ^~~~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::New(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:92:43: error: no matching function for call to ‘v8::Value::ToObject()’
   92 |     Local<Object> obj = info[0]->ToObject();
      |                                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2822 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc:102:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  102 |     if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:102:51: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  102 |     if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
      |                                                   ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:104:60: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  104 |       object->connectParams.connectId = obj->Get(locationId)->Int32Value();
      |                                                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:107:28: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  107 |     else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
      |                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:107:48: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  107 |     else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
      |                                                ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:109:32: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  109 |       ToCString(obj->Get(serial)->ToString(), &object->connectParams.connectString);
      |                                ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:112:33: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  112 |     else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
      |                                 ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:112:58: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  112 |     else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
      |                                                          ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:114:37: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  114 |       ToCString(obj->Get(description)->ToString(), &object->connectParams.connectString);
      |                                     ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:117:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  117 |     else if(obj->Has(index))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:119:55: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  119 |       object->connectParams.connectId = obj->Get(index)->Int32Value();
      |                                                       ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:123:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  123 |     if(obj->Has(vid))
      |                    ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:125:47: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  125 |       object->connectParams.vid = obj->Get(vid)->Int32Value();
      |                                               ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:128:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  128 |     if(obj->Has(pid))
      |                    ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:130:47: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  130 |       object->connectParams.pid = obj->Get(pid)->Int32Value();
      |                                               ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:136:66: error: no matching function for call to ‘v8::Value::NumberValue()’
  136 |     object->connectParams.connectId = (int) info[0]->NumberValue();
      |                                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2861:39: note: candidate: ‘v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const’
 2861 |   V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
      |                                       ^~~~~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2861:39: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘virtual void ReadWorker::HandleOKCallback()’:
../src/ftdi_device.cc:191:123: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
  191 |      Local<Function> bufferConstructor = Local<Function>::Cast(globalObj->Get(Nan::New<String>("Buffer").ToLocalChecked()));
      |                                                                                                                          ^

In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:192:7: error: ‘Handle’ was not declared in this scope
  192 |       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
      |       ^~~~~~
../src/ftdi_device.cc:192:19: error: expected primary-expression before ‘>’ token
  192 |       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
      |                   ^
../src/ftdi_device.cc:192:21: error: ‘constructorArgs’ was not declared in this scope
  192 |       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
      |                     ^~~~~~~~~~~~~~~
../src/ftdi_device.cc:205:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  205 |       callback->Call(2, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In member function ‘virtual void OpenWorker::HandleOKCallback()’:
../src/ftdi_device.cc:344:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  344 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:398:27: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  398 |     callback->Call(1, argv);
      |                           ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc:405:53: error: no matching function for call to ‘v8::Value::ToObject()’
  405 |     device->ExtractDeviceSettings(info[0]->ToObject());
      |                                                     ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2822 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘FT_STATUS ftdi_device::FtdiDevice::OpenDevice()’:
../src/ftdi_device.cc:484:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  484 |                 arg = (PVOID) connectParams.connectId;
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/ftdi_device.cc: In member function ‘virtual void WriteWorker::HandleOKCallback()’:
../src/ftdi_device.cc:552:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  552 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Write(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:575:44: error: no matching function for call to ‘v8::Value::ToObject()’
  575 |   Local<Object> buffer = info[0]->ToObject();
      |                                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2822 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘virtual void CloseWorker::HandleOKCallback()’:
../src/ftdi_device.cc:651:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  651 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:681:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  681 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In member function ‘void ftdi_device::FtdiDevice::ExtractDeviceSettings(v8::Local<v8::Object>)’:
../src/ftdi_device.cc:781:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  781 |   if(options->Has(baudrate))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:783:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  783 |     deviceParams.baudRate = options->Get(baudrate)->ToInt32()->Int32Value();
      |                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:785:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  785 |   if(options->Has(databits))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:787:66: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  787 |     deviceParams.wordLength = GetWordLength(options->Get(databits)->ToInt32()->Int32Value());
      |                                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:789:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  789 |   if(options->Has(stopbits))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:791:62: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  791 |     deviceParams.stopBits = GetStopBits(options->Get(stopbits)->ToInt32()->Int32Value());
      |                                                              ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:793:25: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  793 |   if(options->Has(parity))
      |                         ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:796:34: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  796 |     ToCString(options->Get(parity)->ToString(), &str);
      |                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:800:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  800 |   if(options->Has(flowctrl))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:803:36: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  803 |     ToCString(options->Get(flowctrl)->ToString(), &str);
      |                                    ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:812:26: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  812 |   if(options->Has(bitmode))
      |                          ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:814:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  814 |       deviceParams.bitMode = options->Get(bitmode)->ToInt32()->Int32Value();
      |                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:820:44: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  820 |   if(hasBitSettings && options->Has(bitmask))
      |                                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:822:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  822 |       deviceParams.bitMask = options->Get(bitmask)->ToInt32()->Int32Value();
      |                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc: In function ‘void ToCString(v8::Local<v8::String>, char**)’:
../src/ftdi_device.cc:900:35: error: no matching function for call to ‘v8::String::Utf8Length()’
  900 |   *ptr = new char[val->Utf8Length() + 1];
      |                                   ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2977:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
 2977 |   int Utf8Length(Isolate* isolate) const;
      |       ^~~~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2977:7: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc:903:21: error: cannot convert ‘uint8_t*’ {aka ‘unsigned char*’} to ‘v8::Isolate*’
  903 |   val->WriteOneByte(reinterpret_cast<uint8_t*>(*ptr), 0, -1, 0);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     |
      |                     uint8_t* {aka unsigned char*}
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3034:29: note:   initializing argument 1 of ‘int v8::String::WriteOneByte(v8::Isolate*, uint8_t*, int, int, int) const’
 3034 |   int WriteOneByte(Isolate* isolate, uint8_t* buffer, int start = 0,
      |                    ~~~~~~~~~^~~~~~~
../src/ftdi_device.cc: At global scope:
../src/ftdi_device.cc:989:6: error: variable or field ‘Initialize’ declared void
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |      ^~~~~~~~~~
../src/ftdi_device.cc:989:33: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |                                 ^~~~~~
      |                                 JobHandle
../src/ftdi_device.cc:989:50: error: expected primary-expression before ‘>’ token
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |                                                  ^
../src/ftdi_device.cc:989:52: error: ‘target’ was not declared in this scope
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |                                                    ^~~~~~
../src/ftdi_device.cc:1006:8: error: variable or field ‘init’ declared void
 1006 |   void init (v8::Handle<v8::Object> target)
      |        ^~~~
../src/ftdi_device.cc:1006:18: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
 1006 |   void init (v8::Handle<v8::Object> target)
      |                  ^~~~~~
      |                  JobHandle
../src/ftdi_device.cc:1006:35: error: expected primary-expression before ‘>’ token
 1006 |   void init (v8::Handle<v8::Object> target)
      |                                   ^
../src/ftdi_device.cc:1006:37: error: ‘target’ was not declared in this scope
 1006 |   void init (v8::Handle<v8::Object> target)
      |                                     ^~~~~~
In file included from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
../src/ftdi_device.cc:1014:19: error: ‘init’ was not declared in this scope; did you mean ‘int’?
 1014 | NODE_MODULE(ftdi, init)
      |                   ^~~~
/root/.cache/node-gyp/14.20.0/include/node/node.h:793:36: note: in definition of macro ‘NODE_MODULE_X’
  793 |       (node::addon_register_func) (regfunc),                          \
      |                                    ^~~~~~~
../src/ftdi_device.cc:1014:1: note: in expansion of macro ‘NODE_MODULE’
 1014 | NODE_MODULE(ftdi, init)
      | ^~~~~~~~~~~
make: *** [ftdi.target.mk:116: Release/obj.target/ftdi/src/ftdi_device.o] Error 1
make: Leaving directory '/home/sftpuser01/zrx/experiment/node_modules/ftdi/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v14.20.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12)
gyp ERR! System Linux 5.15.32-v8+
gyp ERR! command "/root/.nvm/versions/node/v14.20.0/bin/node" "/root/.nvm/versions/node/v14.20.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/sftpuser01/zrx/experiment/node_modules/ftdi
gyp ERR! node -v v14.20.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-07-28T08_47_29_530Z-debug.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions