OptimalBits / navcodec

nodejs extension for libavcodec
151 stars 19 forks source link

Fails to compile on OSX #15

Closed danscan closed 11 years ago

danscan commented 11 years ago

I compiled libav 9.10 from source (with the same configuration that successfully compiled on ubuntu), and navcodec failed to compile. Here are the logs.

> navcodec@0.3.7 install /Users/dscanlon/Dropbox/Present/dev/transcoder-worker/node_modules/navcodec
> node-gyp rebuild

  CXX(target) Release/obj.target/navcodec/src/navcodec.o
../src/navcodec.cpp:59:70: warning: 'New' is deprecated [-Wdeprecated-declarations]
    target->Set(String::NewSymbol("relocateMoov"), FunctionTemplate::New(RelocateMoov)->GetFunction());
                                                                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3354:48: note: 'New' declared here
  V8_DEPRECATED(static Local<FunctionTemplate> New(
                                               ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
1 warning generated.
  CXX(target) Release/obj.target/navcodec/src/navcodeccontext.o
../src/navcodeccontext.cpp:57:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("codec_type"), GetType, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:58:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("width"), GetWidth, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:59:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("height"), GetHeight, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:60:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("bit_rate"), GetBitRate, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:61:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("sample_fmt"), GetSampleFmt, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:62:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("sample_rate"), GetSampleRate, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:63:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("channels"), GetChannels, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:64:10: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  templ->SetAccessor(String::New("framerate"), GetFramerate, NoopSet);
         ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:3479:22: note: 'SetAccessor' declared here
  V8_DEPRECATED(void SetAccessor(Handle<String> name,
                     ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:91:35: note: expanded from macro 'V8_DEPRECATED'
#define V8_DEPRECATED(declarator) declarator __attribute__ ((deprecated))
                                  ^
../src/navcodeccontext.cpp:69:56: error: 'New' is a private member of 'v8::Persistent<v8::ObjectTemplate>'
  NAVCodecContext::templ = Persistent<ObjectTemplate>::New(templ);
                                                       ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:795:23: note: declared private here
  V8_INLINE(static T* New(Isolate* isolate, T* that));
                      ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:83:69: note: expanded from macro 'V8_INLINE'
#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
                                                                    ^
../src/navcodeccontext.cpp:69:65: error: too few arguments to function call, expected 2, have 1
  NAVCodecContext::templ = Persistent<ObjectTemplate>::New(templ);
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:795:3: note: 'New' declared here
  V8_INLINE(static T* New(Isolate* isolate, T* that));
  ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:83:31: note: expanded from macro 'V8_INLINE'
#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
                              ^
../src/navcodeccontext.cpp:75:45: error: 'operator->' is a private member of 'v8::Persistent<v8::ObjectTemplate>'
  Local<Object> obj = NAVCodecContext::templ->NewInstance();  
                      ~~~~~~~~~~~~~~~~~~~~~~^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:784:16: note: declared private here
  V8_INLINE(T* operator->() const) { return val_; }
               ^
/Users/dscanlon/.node-gyp/0.11.6/deps/v8/include/v8.h:83:69: note: expanded from macro 'V8_INLINE'
#define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
                                                                    ^
../src/navcodeccontext.cpp:80:3: error: no matching function for call to 'NODE_SET_METHOD'
  NODE_SET_METHOD(obj, "open", Open);
  ^~~~~~~~~~~~~~~
/Users/dscanlon/.node-gyp/0.11.6/src/node.h:159:25: note: expanded from macro 'NODE_SET_METHOD'
#define NODE_SET_METHOD node::NODE_SET_METHOD
                        ^~~~~~~~~~~~~~~~~~~~~
/Users/dscanlon/.node-gyp/0.11.6/src/node.h:148:13: note: candidate function [with TypeName = v8::Local<v8::Object>]
      not viable: no known conversion from 'Handle<v8::Value> (const v8::Arguments &)' to 'v8::FunctionCallback' (aka
      'void (*)(const FunctionCallbackInfo<v8::Value> &)') for 3rd argument
inline void NODE_SET_METHOD(const TypeName& recv,
            ^
8 warnings and 4 errors generated.
make: *** [Release/obj.target/navcodec/src/navcodeccontext.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:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:106:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:790:12)
gyp ERR! System Darwin 13.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/dscanlon/Dropbox/Present/dev/transcoder-worker/node_modules/navcodec
gyp ERR! node -v v0.11.6
gyp ERR! node-gyp -v v0.10.9
gyp ERR! not ok 
npm ERR! weird error 1
npm ERR! not ok code 0

Any ideas what the issue could be?

danscan commented 11 years ago

I was running node 0.11.6! Retried with v0.10.21 and navcodec compiled successfully! :)

manast commented 11 years ago

ok great :). 0.11 may have changed the addons API...