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

Build Failed with OSX10.9.5 and Ubuntu14.04? #595

Closed
weiway opened this issue Sep 24, 2015 · 12 comments
Closed

Build Failed with OSX10.9.5 and Ubuntu14.04? #595

weiway opened this issue Sep 24, 2015 · 12 comments

Comments

@weiway
Copy link

weiway commented Sep 24, 2015

Here's the log:

Weis-MacBook-Pro:AppChromerino Wei$ npm install serialport
npm WARN package.json app-chromerino@0.1.0 No repository field.
npm WARN package.json app-chromerino@0.1.0 No README data
-
> serialport@1.7.4 install /Users/Wei/Xproject/AppChromerino/node_modules/serialport
> node-pre-gyp install --fallback-to-build

  CXX(target) Release/obj.target/serialport/src/serialport.o
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
../node_modules/nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                        ^
../node_modules/nan/nan.h:256:25: note: previous definition is here
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                        ^
../node_modules/nan/nan.h:661:13: error: no member named 'smalloc' in namespace
      'node'
    , node::smalloc::FreeCallback callback
      ~~~~~~^
../node_modules/nan/nan.h:672:12: error: no matching function for call to 'New'
    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
           ^~~~~~~~~~~~~~~~~
/Users/Wei/.node-gyp/4.1.1/include/node/node_buffer.h:31:40: note: candidate
      function not viable: no known conversion from 'uint32_t'
      (aka 'unsigned int') to 'enum encoding' for 3rd argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/Wei/.node-gyp/4.1.1/include/node/node_buffer.h:43:40: note: candidate
      function not viable: 2nd argument ('const char *') would lose const
      qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/Wei/.node-gyp/4.1.1/include/node/node_buffer.h:28:40: note: candidate
      function not viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                       ^
/Users/Wei/.node-gyp/4.1.1/include/node/node_buffer.h:36:40: note: candidate
      function not viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
../node_modules/nan/nan.h:676:12: error: no viable conversion from
      'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'
    return node::Buffer::New(v8::Isolate::GetCurrent(), size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:210:7: note: candidate constructor
      (the implicit copy constructor) not viable: no known conversion from
      'v8::MaybeLocal<v8::Object>' to 'const v8::Local<v8::Object> &' for 1st
      argument
class Local {
      ^
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:210:7: note: candidate constructor
      (the implicit move constructor) not viable: no known conversion from
      'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object> &&' for 1st
      argument
class Local {
      ^
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:214:13: note: candidate template
      ignored: could not match 'Local' against 'MaybeLocal'
  V8_INLINE Local(Local<S> that)
            ^
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:326:13: note: candidate template
      ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'
  V8_INLINE Local(S* that)
            ^
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
../node_modules/nan/nan.h:683:26: error: no member named 'Use' in namespace
      'node::Buffer'
    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
           ~~~~~~~~~~~~~~^
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/Wei/.node-gyp/4.1.1/include/node/node.h:42:
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:221:5: error: assigning to
      'v8::Primitive *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:180:37: note: expanded from macro
      'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:414:12: note: in instantiation of function template
      specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
           ^
../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/Wei/.node-gyp/4.1.1/include/node/node.h:42:
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:221:5: error: assigning to
      'v8::Boolean *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:180:37: note: expanded from macro
      'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:424:12: note: in instantiation of function template
      specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
           ^
../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/Wei/.node-gyp/4.1.1/include/node/node.h:42:
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:221:5: error: assigning to
      'v8::Function *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:180:37: note: expanded from macro
      'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:1514:12: note: in instantiation of function template
      specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
           ^
../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
In file included from ../src/serialport.cpp:3:
In file included from ../src/serialport.h:5:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/Wei/.node-gyp/4.1.1/include/node/node.h:42:
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:221:5: error: assigning to
      'v8::Object *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Wei/.node-gyp/4.1.1/include/node/v8.h:180:37: note: expanded from macro
      'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:1632:12: note: in instantiation of function template
      specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here
    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
           ^
../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
                             ^
9 errors generated.
make: *** [Release/obj.target/serialport/src/serialport.o] Error 1
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:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 13.4.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/Wei/Xproject/AppChromerino/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-darwin-x64/serialport.node" "--module_name=serialport" "--module_path=/Users/Wei/Xproject/AppChromerino/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-darwin-x64"
gyp ERR! cwd /Users/Wei/Xproject/AppChromerino/node_modules/serialport
gyp ERR! node -v v4.1.1
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/Wei/Xproject/AppChromerino/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-darwin-x64/serialport.node --module_name=serialport --module_path=/Users/Wei/Xproject/AppChromerino/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-darwin-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/Wei/Xproject/AppChromerino/node_modules/serialport/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:87:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:817:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
node-pre-gyp ERR! System Darwin 13.4.0
node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/Wei/Xproject/AppChromerino/node_modules/serialport/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/Wei/Xproject/AppChromerino/node_modules/serialport
node-pre-gyp ERR! node -v v4.1.1
node-pre-gyp ERR! node-pre-gyp -v v0.6.7
node-pre-gyp ERR! not ok 
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/Wei/Xproject/AppChromerino/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-darwin-x64/serialport.node --module_name=serialport --module_path=/Users/Wei/Xproject/AppChromerino/node_modules/serialport/build/serialport/v1.7.4/Release/node-v46-darwin-x64' (1)
npm ERR! Darwin 13.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "serialport"
npm ERR! node v4.1.1
npm ERR! npm  v2.14.4
npm ERR! code ELIFECYCLE

npm ERR! serialport@1.7.4 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the serialport@1.7.4 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the serialport package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR!     npm owner ls serialport
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/Wei/Xproject/AppChromerino/npm-debug.log
Weis-MacBook-Pro:AppChromerino Wei$ 
@fivdi
Copy link
Contributor

fivdi commented Sep 24, 2015

node-serialport doesn't support Node.js v4.1.1 yet. See #578 for further information.

There are currently two pull requests for Node.js 4 support, #566 and #571.

#566 can be installed with npm install "git://github.com/ghostoy/node-serialport.git#nan1to2"

#571 can be installed with npm install "git://github.com/julianduque/node-serialport.git#master"

You could try either or both of them and report your findings 👍

@weiway
Copy link
Author

weiway commented Sep 25, 2015

Both #566 and #571 build succeed on my OSX10.9.5 with node v4.1.1, did not test on ubuntu. Thank you!

@jacobrosenthal
Copy link
Contributor

Thank you for the confirmations

On Sat, Sep 26, 2015 at 12:34 AM, Wei Wang notifications@github.com wrote:

5 with node v4

@LeandroFavero
Copy link

Not work in Raspberry Pi2 :-(

@fivdi
Copy link
Contributor

fivdi commented Sep 27, 2015

@LeandroFavero what issues have you seen on the Raspberry Pi 2?

@kammce
Copy link

kammce commented Sep 29, 2015

Both #566 and #571 builds succeed on machine. Using Ubuntu 14.04 with IO.js 3.2.0. Will be upgrading to nodejs 4.x.x to to test this further. Will be testing the port on real hardware soon.

@fivdi
Copy link
Contributor

fivdi commented Sep 29, 2015

@kammce thanks for the feedback :)
Please let us know how the tests go.

@kammce
Copy link

kammce commented Sep 29, 2015

Continuing to use io.js 3.2.0 on ubuntu 14.04LTS, both #566 and #571 work to read and write information to an arduino.

Nodejs Program:

var SerialPort = require("serialport").SerialPort
var serialPort = new SerialPort("/dev/ttyACM0", {
  baudrate: 9600
});

serialPort.on("open", function () {
        console.log('open');
        serialPort.on('data', function(data) {
                console.log('data received: ' + data);
        });
        setInterval(function() {
                serialPort.write("hello serial port\n");
        }, 1000);
});

used example Arduino SerialEvent.

Program output:

open
data received: h
data received: ello
data received:  ser
data received: ial 
data received: por
data received: t


data received: hel
data received: lo s
data received: eria
data received: l po
data received: rt

data received: 

data received: he
data received: llo 
data received: seri
data received: al p
data received: ort

data received: 

^C

@fivdi
Copy link
Contributor

fivdi commented Sep 29, 2015

@kammce Excellent 👍

@kammce
Copy link

kammce commented Sep 29, 2015

And finally, I can confirm that with nodejs v4.1.1 with the same setup both #566 and #571 it works.

@fivdi
Copy link
Contributor

fivdi commented Sep 29, 2015

@kammce Even better 👍

@jacobrosenthal
Copy link
Contributor

Thanks for all the reports, closing this for the main node 4 ticket.

@lock lock bot locked as resolved and limited conversation to collaborators May 6, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

5 participants