Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
linus-amg opened this issue Jul 28, 2022 · 2 comments
Open

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

linus-amg opened this issue Jul 28, 2022 · 2 comments

Comments

@linus-amg
Copy link

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
@linus-amg
Copy link
Author

Someone mentioned he did not have v8 (I guess this refers to the js engine, not node.js version 8 specifically) and I see lines like v8.h:3720:43 which makes me think that I maybe need to install v8 separately to make the build, but I can't find anything else related to this.

@linus-amg
Copy link
Author

When trying with NodeJS v8.17.0 I only get warnings, no errors anymore, but in the end now the following:

/usr/bin/ld: skipping incompatible /usr/local/lib/libftd2xx.so when searching for -lftd2xx
/usr/bin/ld: skipping incompatible /usr/local/lib/libftd2xx.a when searching for -lftd2xx
/usr/bin/ld: cannot find -lftd2xx
/usr/bin/ld: skipping incompatible /usr/local/lib/libftd2xx.so when searching for -lftd2xx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant