Hi there.
I'm trying to install the SDS011 sensor node in my rapsberry pi3, you can find it here: https://flows.nodered.org/node/node-red-contrib-sds011
Actually i'm running npm@6.13.4 and node@v12.15.0.
I wish that it's not a problem with compatibility between the node and my version of nodejs, or something like this.
When i try to run the script: npm install node-red-contrib-sds011, this is the answer.
Any ideas?
Thanks.
> serialport@6.2.2 install /home/pi/node_modules/node-red-contrib-sds011/node_modules/serialport
> prebuild-install || node-gyp rebuild
>prebuild-install WARN install No prebuilt binaries found (target=12.15.0 runtime=node arch=arm platform=linux)
make: ingresso nella directory "/home/pi/node_modules/node-red-contrib-sds011/node_modules/serialport/build"
CXX(target) Release/obj.target/serialport/src/serialport.o
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../../../nan/nan.h:2298:62: 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]
, reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:41:48: error: no matching function for call to ‘v8::Value::ToString()’
v8::String::Utf8Value path(info[0]->ToString());
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2572:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2572:44: note: candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2588:31: note: candidate: ‘v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const’
Local<String> ToString(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2588:31: note: candidate expects 1 argument, 0 provided
Local<String> ToString(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:48:53: error: no matching function for call to ‘v8::Value::ToObject()’
v8::Local<v8::Object> options = info[1]->ToObject();
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2576:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2590:31: note: candidate: ‘v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const’
Local<Object> ToObject(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided
Local<Object> ToObject(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:78:69: 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]
uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
^~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterOpen(uv_work_t*)’:
../src/serialport.cpp:95:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(2, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:113:53: error: no matching function for call to ‘v8::Value::ToObject()’
v8::Local<v8::Object> options = info[1]->ToObject();
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2576:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2590:31: note: candidate: ‘v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const’
Local<Object> ToObject(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided
Local<Object> ToObject(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:135:71: 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]
uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
^~~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterUpdate(uv_work_t*)’:
../src/serialport.cpp:150:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(1, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:175:70: 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]
uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
^~~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterClose(uv_work_t*)’:
../src/serialport.cpp:188:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(1, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:215:70: 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]
uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
^~~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterFlush(uv_work_t*)’:
../src/serialport.cpp:231:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(1, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:250:53: error: no matching function for call to ‘v8::Value::ToObject()’
v8::Local<v8::Object> options = info[1]->ToObject();
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2576:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2590:31: note: candidate: ‘v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const’
Local<Object> ToObject(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided
Local<Object> ToObject(Isolate* isolate) const);
^~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:270:68: 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]
uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
^~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterSet(uv_work_t*)’:
../src/serialport.cpp:285:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(1, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:314:68: 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]
uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
^~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterGet(uv_work_t*)’:
../src/serialport.cpp:329:96: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
an::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts));
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:330:96: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
an::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr));
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:331:96: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
an::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd));
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:336:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(2, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:363:76: 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]
eue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate);
^~~~~~~~~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterGetBaudRate(uv_work_t*)’:
../src/serialport.cpp:378:106: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate));
^
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14,
from /home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:25,
from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:3403:22: note: declared here
bool Set(Local<Value> key, Local<Value> value));
^~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/serialport.cpp:383:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(2, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:409:70: 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]
uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
^~~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterDrain(uv_work_t*)’:
../src/serialport.cpp:424:30: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
data->callback.Call(1, argv);
^
In file included from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../../../../nan/nan.h:1740:3: note: declared here
Call(int argc, v8::Local<v8::Value> argv[]) const {
^~~~
../src/serialport.cpp: At global scope:
../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
^
../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
^
../src/serialport.cpp:460:17: error: variable or field ‘init’ declared void
void init(v8::Handle<v8::Object> target) {
^~~~~~
../src/serialport.cpp:460:17: error: ‘Handle’ is not a member of ‘v8’
../src/serialport.cpp:460:34: error: expected primary-expression before ‘>’ token
void init(v8::Handle<v8::Object> target) {
^
../src/serialport.cpp:460:36: error: ‘target’ was not declared in this scope
void init(v8::Handle<v8::Object> target) {
^~~~~~
../src/serialport.cpp:460:36: note: suggested alternative: ‘tzset’
void init(v8::Handle<v8::Object> target) {
^~~~~~
tzset
In file included from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
../src/serialport.cpp:485:25: error: ‘init’ was not declared in this scope
NODE_MODULE(serialport, init);
^~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/node.h:560:36: note: in definition of macro ‘NODE_MODULE_X’
(node::addon_register_func) (regfunc), \
^~~~~~~
../src/serialport.cpp:485:1: note: in expansion of macro ‘NODE_MODULE’
NODE_MODULE(serialport, init);
^~~~~~~~~~~
../src/serialport.cpp:485:25: note: suggested alternative: ‘int’
NODE_MODULE(serialport, init);
^~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/node.h:560:36: note: in definition of macro ‘NODE_MODULE_X’
(node::addon_register_func) (regfunc), \
^~~~~~~
../src/serialport.cpp:485:1: note: in expansion of macro ‘NODE_MODULE’
NODE_MODULE(serialport, init);
^~~~~~~~~~~
In file included from /home/pi/.cache/node-gyp/12.15.0/include/node/node.h:63,
from ../../../../nan/nan.h:54,
from ../src/./serialport.h:6,
from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/pi/.cache/node-gyp/12.15.0/include/node/node_object_wrap.h:84:78: required from here
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:10004:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
reinterpret_cast<Callback>(callback), type);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../../../nan/nan_object_wrap.h:65:61: required from here
/home/pi/.cache/node-gyp/12.15.0/include/node/v8.h:10004:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
make: *** [serialport.target.mk:110: Release/obj.target/serialport/src/serialport.o] Error 1
make: uscita dalla directory "/home/pi/node_modules/node-red-contrib-sds011/node_modules/serialport/build"
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:223:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.19.97-v7+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/node_modules/node-red-contrib-sds011/node_modules/serialport
gyp ERR! node -v v12.15.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json'
npm WARN pi No description
npm WARN pi No repository field.
npm WARN pi No README data
npm WARN pi No license field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! serialport@6.2.2 install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the serialport@6.2.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2020-02-09T11_08_06_720Z-debug.log