make failure on OS X 10.7.4 -- possible to compile on OS X?

90 views
Skip to first unread message

jozefl

unread,
Jun 21, 2012, 1:08:12 AM6/21/12
to r-node...@googlegroups.com
Hi, all.

I'm trying to build r-node on a mac, and I'd appreciate any assistance anyone can offer. I've run into the problem that R.app stores its libraries in different locations.  I already edited the server/Makefile per some of Jamie's suggestions, so now when I try to make, it can, for example, find node. But I'm running into a problem that seems to be with setting the path to the core library with LDFLAGS. libR.dylib is located at:

/Library/Frameworks/R.framework/Versions/2.15/Resources/lib

So the LDFLAGS and CPPFLAGS of my edited makefile look like:

LDFLAGS = -shared -L/Library/Frameworks/R.framework/Versions/2.15/Resources/lib -lR
CPPFLAGS = -I/usr/local/include/node -Isrc/include -DPIC -fPIC -g -c -DEV_MULTIPLICITY=0

And I get the error: "ld: symbol(s) not found for architecture x86_64"

I've put the full output of make below. Any help would be greatly appreciated, even if it's to let me know it can't be compiled on OS X.

Thanks!

rm -rf deploy
mkdir deploy
make -C shared
rm -f r-node-shared.js
rm -f ../deploy/htdocs/js/r-node-shared.js
grep ' ' -Hn ../3rdparty/to-function.js ../3rdparty/functional.js js/00-tokens.js js/01-r-node-core.js js/02-observable.js js/03-r-api.js js/R/01-r-object.js js/R/02-r-parser-internal.js js/R/03-r-parser.js js/R/04-r-workspace.js js/R/graphs/01-graph.js js/R/graphs/02-hist.js js/R/graphs/02-lines.js js/R/graphs/02-plot.js js/R/graphs/10-r-webvis-graph.js js/R/graphs/10-server-graph.js js/R/display/01-display.js js/R/display/02-array.js js/R/display/02-list.js js/R/display/02-pager.js js/R/display/02-table.js js/R/display/02-try-error.js js/R/commands/01-command-handler.js js/R/commands/02-assignment.js js/R/commands/02-help.js js/R/commands/02-histogram.js js/R/commands/02-lines.js js/R/commands/02-plot.js js/R/commands/02-print.js js/R/commands/02-summary-general.js js/R/commands/02-unsupported-commands.js && echo "ERROR: tab" && exit 1 || true
' -Hn ../3rdparty/to-function.js ../3rdparty/functional.js js/00-tokens.js js/01-r-node-core.js js/02-observable.js js/03-r-api.js js/R/01-r-object.js js/R/02-r-parser-internal.js js/R/03-r-parser.js js/R/04-r-workspace.js js/R/graphs/01-graph.js js/R/graphs/02-hist.js js/R/graphs/02-lines.js js/R/graphs/02-plot.js js/R/graphs/10-r-webvis-graph.js js/R/graphs/10-server-graph.js js/R/display/01-display.js js/R/display/02-array.js js/R/display/02-list.js js/R/display/02-pager.js js/R/display/02-table.js js/R/display/02-try-error.js js/R/commands/01-command-handler.js js/R/commands/02-assignment.js js/R/commands/02-help.js js/R/commands/02-histogram.js js/R/commands/02-lines.js js/R/commands/02-plot.js js/R/commands/02-print.js js/R/commands/02-summary-general.js js/R/commands/02-unsupported-commands.js && echo "ERROR: dos newline" && exit 1 || true
grep ' $' -Hn ../3rdparty/to-function.js ../3rdparty/functional.js js/00-tokens.js js/01-r-node-core.js js/02-observable.js js/03-r-api.js js/R/01-r-object.js js/R/02-r-parser-internal.js js/R/03-r-parser.js js/R/04-r-workspace.js js/R/graphs/01-graph.js js/R/graphs/02-hist.js js/R/graphs/02-lines.js js/R/graphs/02-plot.js js/R/graphs/10-r-webvis-graph.js js/R/graphs/10-server-graph.js js/R/display/01-display.js js/R/display/02-array.js js/R/display/02-list.js js/R/display/02-pager.js js/R/display/02-table.js js/R/display/02-try-error.js js/R/commands/01-command-handler.js js/R/commands/02-assignment.js js/R/commands/02-help.js js/R/commands/02-histogram.js js/R/commands/02-lines.js js/R/commands/02-plot.js js/R/commands/02-print.js js/R/commands/02-summary-general.js js/R/commands/02-unsupported-commands.js && echo "ERROR: trailing space" && exit 1 || true
rm -f r-node-shared.js
echo "// 33b71abab6ebcd59052023b3dcdb809e3324bcf1" >> r-node-shared.js
cat ../3rdparty/to-function.js ../3rdparty/functional.js js/00-tokens.js js/01-r-node-core.js js/02-observable.js js/03-r-api.js js/R/01-r-object.js js/R/02-r-parser-internal.js js/R/03-r-parser.js js/R/04-r-workspace.js js/R/graphs/01-graph.js js/R/graphs/02-hist.js js/R/graphs/02-lines.js js/R/graphs/02-plot.js js/R/graphs/10-r-webvis-graph.js js/R/graphs/10-server-graph.js js/R/display/01-display.js js/R/display/02-array.js js/R/display/02-list.js js/R/display/02-pager.js js/R/display/02-table.js js/R/display/02-try-error.js js/R/commands/01-command-handler.js js/R/commands/02-assignment.js js/R/commands/02-help.js js/R/commands/02-histogram.js js/R/commands/02-lines.js js/R/commands/02-plot.js js/R/commands/02-print.js js/R/commands/02-summary-general.js js/R/commands/02-unsupported-commands.js >> r-node-shared.js
mkdir -p ../deploy/htdocs/js/
cd ../deploy/htdocs/js && cp -r ../../../shared/r-node-shared.js . && cd -
/Users/aliving1/r-node/shared
make -C client
mkdir -p ../deploy/htdocs/js
mkdir -p ../deploy/htdocs/css
mkdir -p ../deploy/htdocs/assets
mkdir -p ../deploy/htdocs/doc
cd ../deploy/htdocs/js/ && cp -r ../../../client/htdocs/js/* . && \
cp -r ../../../3rdparty/extjs . && \
cp -r ../../../3rdparty/protovis . && \
cp -r ../../../3rdparty/shjs . && \
cd ../css/ && cp -r ../../../client/htdocs/css/* . && \
cd ../doc/ && cp -r ../../../client/htdocs/doc/* . && \
cd ../assets/ && cp -r ../../../client/htdocs/assets/* . && \
cd .. && cp -r ../../client/htdocs/index.* . && \
cp -r ../../client/htdocs/R.css . && \
cd ../../client
make -C server
gcc -o binding.node src/binding.o src/Rconnection.o -shared -L/Library/Frameworks/R.framework/Versions/2.15/Resources/lib -lR
Undefined symbols for architecture x86_64:
  "std::ios_base::Init::Init()", referenced from:
      ___cxx_global_var_init in binding.o
      ___cxx_global_var_init in Rconnection.o
  "std::ios_base::Init::~Init()", referenced from:
      ___cxx_global_var_init in binding.o
      ___cxx_global_var_init in Rconnection.o
  "v8::HandleScope::HandleScope()", referenced from:
      parseRexp(char*, int&)in binding.o
      _init in binding.o
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
      Connection::New(v8::Arguments const&)  in binding.o
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Close(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      ...
  "v8::Null()", referenced from:
      parseRexp(char*, int&)in binding.o
  "v8::String::New(char const*, int)", referenced from:
      parseRexp(char*, int&)in binding.o
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
      Connection::Event(int)   in binding.o
      Connection::CloseConnectionWithError(char const*)in binding.o
  "v8::Exception::Error(v8::Handle<v8::String>)", referenced from:
      parseRexp(char*, int&)in binding.o
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
      Connection::Event(int)   in binding.o
      Connection::CloseConnectionWithError(char const*)in binding.o
  "v8::Array::New(int)", referenced from:
      parseRexp(char*, int&)in binding.o
  "v8::Integer::New(int)", referenced from:
      parseRexp(char*, int&)in binding.o
  "v8::Number::New(double)", referenced from:
      parseRexp(char*, int&)in binding.o
  "v8::Object::Set(v8::Handle<v8::Value>, v8::Handle<v8::Value>, v8::PropertyAttribute)", referenced from:
      parseRexp(char*, int&)in binding.o
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::Object::New()", referenced from:
      parseRexp(char*, int&)in binding.o
  "v8::Value::IsNull() const", referenced from:
      parseRexp(char*, int&)in binding.o
  "v8::HandleScope::~HandleScope()", referenced from:
      parseRexp(char*, int&)in binding.o
      _init in binding.o
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
      Connection::New(v8::Arguments const&)  in binding.o
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Close(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      ...
  "std::terminate()", referenced from:
      parseRexp(char*, int&)in binding.o
      _init in binding.o
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
      std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<v8::Local<v8::Value>*, std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > > >, v8::Local<v8::Value> const&)in binding.o
      v8::Local<v8::Value>* std::__uninitialized_copy_aux<v8::Local<v8::Value>*, v8::Local<v8::Value>*>(v8::Local<v8::Value>*, v8::Local<v8::Value>*, v8::Local<v8::Value>*, std::__false_type)in binding.o
      std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >::~vector()in binding.o
      Connection::New(v8::Arguments const&)  in binding.o
      ...
  "v8::HandleScope::CreateHandle(v8::internal::Object*)", referenced from:
      v8::Local<v8::Value>::New(v8::Handle<v8::Value>)in binding.o
  "v8::HandleScope::RawClose(v8::internal::Object**)", referenced from:
      v8::Local<v8::Value> v8::HandleScope::Close<v8::Value>(v8::Handle<v8::Value>)in binding.o
      v8::Local<v8::String> v8::HandleScope::Close<v8::String>(v8::Handle<v8::String>)in binding.o
      v8::Local<v8::Boolean> v8::HandleScope::Close<v8::Boolean>(v8::Handle<v8::Boolean>)in binding.o
  "v8::True()", referenced from:
      v8::Boolean::New(bool)in binding.o
  "v8::False()", referenced from:
      v8::Boolean::New(bool)in binding.o
  "v8::FunctionTemplate::New(v8::Handle<v8::Value> (*)(v8::Arguments const&), v8::Handle<v8::Value>, v8::Handle<v8::Signature>)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "node::EventEmitter::constructor_template", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::FunctionTemplate::Inherit(v8::Handle<v8::FunctionTemplate>)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::FunctionTemplate::InstanceTemplate()", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::ObjectTemplate::SetInternalFieldCount(int)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::String::NewSymbol(char const*, int)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
      Connection::StateGetter(v8::Local<v8::String>, v8::AccessorInfo const&)      in binding.o
  "v8::Signature::New(v8::Handle<v8::FunctionTemplate>, int, v8::Handle<v8::FunctionTemplate>*)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::FunctionTemplate::PrototypeTemplate()", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::Template::Set(v8::Handle<v8::String>, v8::Handle<v8::Data>, v8::PropertyAttribute)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::ObjectTemplate::SetAccessor(v8::Handle<v8::String>, v8::Handle<v8::Value> (*)(v8::Local<v8::String>, v8::AccessorInfo const&), void (*)(v8::Local<v8::String>, v8::Local<v8::Value>, v8::AccessorInfo const&), v8::Handle<v8::Value>, v8::AccessControl, v8::PropertyAttribute)", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "v8::FunctionTemplate::GetFunction()", referenced from:
      Connection::Initialize(v8::Handle<v8::Object>)          in binding.o
  "std::__throw_length_error(char const*)", referenced from:
      std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<v8::Local<v8::Value>*, std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > > >, v8::Local<v8::Value> const&)in binding.o
  "___cxa_begin_catch", referenced from:
      std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<v8::Local<v8::Value>*, std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > > >, v8::Local<v8::Value> const&)in binding.o
      v8::Local<v8::Value>* std::__uninitialized_copy_aux<v8::Local<v8::Value>*, v8::Local<v8::Value>*>(v8::Local<v8::Value>*, v8::Local<v8::Value>*, v8::Local<v8::Value>*, std::__false_type)in binding.o
  "___cxa_rethrow", referenced from:
      std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<v8::Local<v8::Value>*, std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > > >, v8::Local<v8::Value> const&)in binding.o
      v8::Local<v8::Value>* std::__uninitialized_copy_aux<v8::Local<v8::Value>*, v8::Local<v8::Value>*>(v8::Local<v8::Value>*, v8::Local<v8::Value>*, v8::Local<v8::Value>*, std::__false_type)in binding.o
  "___cxa_end_catch", referenced from:
      std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<v8::Local<v8::Value>*, std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > > >, v8::Local<v8::Value> const&)in binding.o
      v8::Local<v8::Value>* std::__uninitialized_copy_aux<v8::Local<v8::Value>*, v8::Local<v8::Value>*>(v8::Local<v8::Value>*, v8::Local<v8::Value>*, v8::Local<v8::Value>*, std::__false_type)in binding.o
  "operator delete(void*)", referenced from:
      __gnu_cxx::new_allocator<v8::Local<v8::Value> >::deallocate(v8::Local<v8::Value>*, unsigned long)in binding.o
      Connection::New(v8::Arguments const&)  in binding.o
      Connection::Login(char const*, char const*)in binding.o
      Connection::Query(char const*)in binding.o
      Connection::Connect(char const*, unsigned int)in binding.o
      Connection::~Connection()in binding.o
      node::ObjectWrap::~ObjectWrap()in binding.o
      ...
  "std::__throw_bad_alloc()", referenced from:
      __gnu_cxx::new_allocator<v8::Local<v8::Value> >::allocate(unsigned long, void const*)in binding.o
  "operator new(unsigned long)", referenced from:
      __gnu_cxx::new_allocator<v8::Local<v8::Value> >::allocate(unsigned long, void const*)in binding.o
      Connection::New(v8::Arguments const&)  in binding.o
      Connection::Login(char const*, char const*)in binding.o
      Connection::Query(char const*)in binding.o
      Connection::Connect(char const*, unsigned int)in binding.o
      new_parsed_Rexp(unsigned int*, Rmessage*)in Rconnection.o
      Rlist::fix_content()      in Rconnection.o
      ...
  "v8::V8::GlobalizeReference(v8::internal::Object**)", referenced from:
      v8::Persistent<v8::String>::New(v8::Handle<v8::String>)in binding.o
      v8::Persistent<v8::Object>::New(v8::Handle<v8::Object>)in binding.o
  "v8::Value::IsInt32() const", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
  "v8::ThrowException(v8::Handle<v8::Value>)", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
  "v8::Value::ToString() const", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
  "v8::String::Utf8Value::Utf8Value(v8::Handle<v8::Value>)", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
  "v8::Value::Uint32Value() const", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
  "v8::String::Utf8Value::~Utf8Value()", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
  "v8::Undefined()", referenced from:
      Connection::Connect(v8::Arguments const&)  in binding.o
      Connection::Close(v8::Arguments const&)  in binding.o
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
      v8::Arguments::operator[](int) constin binding.o
      node::ObjectWrap::~ObjectWrap()in binding.o
  "v8::Exception::TypeError(v8::Handle<v8::String>)", referenced from:
      Connection::Query(v8::Arguments const&)  in binding.o
      Connection::Login(v8::Arguments const&)  in binding.o
  "v8::Object::InternalFieldCount()", referenced from:
      Connection* node::ObjectWrap::Unwrap<Connection>(v8::Handle<v8::Object>) in binding.o
      node::ObjectWrap::Wrap(v8::Handle<v8::Object>)        in binding.o
  "v8::Object::SlowGetPointerFromInternalField(int)", referenced from:
      v8::Object::GetPointerFromInternalField(int)  in binding.o
  "_ev_io_start", referenced from:
      Connection::Login(char const*, char const*)in binding.o
      Connection::Query(char const*)in binding.o
      Connection::Connect(char const*, unsigned int)in binding.o
      Connection::Event(int)   in binding.o
      Connection::MakeConnection()       in binding.o
  "_ev_io_stop", referenced from:
      Connection::Login(char const*, char const*)in binding.o
      Connection::Query(char const*)in binding.o
      Connection::Close(v8::Local<v8::Value>)         in binding.o
      Connection::Event(int)   in binding.o
      Connection::MakeConnection()       in binding.o
  "node::EventEmitter::Emit(v8::Handle<v8::String>, int, v8::Handle<v8::Value>*)", referenced from:
      Connection::Query(char const*)in binding.o
      Connection::Close(v8::Local<v8::Value>)         in binding.o
      Connection::Event(int)   in binding.o
      Connection::MakeConnection()       in binding.o
  "v8::Object::SetPointerInInternalField(int, void*)", referenced from:
      node::ObjectWrap::Wrap(v8::Handle<v8::Object>)        in binding.o
  "v8::V8::MakeWeak(v8::internal::Object**, void*, void (*)(v8::Persistent<v8::Value>, void*))", referenced from:
      v8::Persistent<v8::Object>::MakeWeak(void*, void (*)(v8::Persistent<v8::Value>, void*))in binding.o
  "v8::V8::IsGlobalNearDeath(v8::internal::Object**)", referenced from:
      v8::Persistent<v8::Value>::IsNearDeath() const  in binding.o
      v8::Persistent<v8::Object>::IsNearDeath() const  in binding.o
  "v8::V8::IsGlobalWeak(v8::internal::Object**)", referenced from:
      v8::Persistent<v8::Object>::IsWeak() const in binding.o
  "v8::V8::ClearWeak(v8::internal::Object**)", referenced from:
      v8::Persistent<v8::Object>::ClearWeak()      in binding.o
  "v8::Object::SetInternalField(int, v8::Handle<v8::Value>)", referenced from:
      node::ObjectWrap::~ObjectWrap()in binding.o
  "v8::V8::DisposeGlobal(v8::internal::Object**)", referenced from:
      v8::Persistent<v8::Object>::Dispose()      in binding.o
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for node::ObjectWrapin binding.o
      typeinfo for Rexpin Rconnection.o
      typeinfo for Rmessagein Rconnection.o
      typeinfo for Rconnectionin Rconnection.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for node::EventEmitterin binding.o
      typeinfo for Connectionin binding.o
      typeinfo for Rlistin Rconnection.o
      typeinfo for Rvectorin Rconnection.o
      typeinfo for Rstringsin Rconnection.o
      typeinfo for Rsymbolin Rconnection.o
      typeinfo for Rstringin Rconnection.o
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "___gxx_personality_v0", referenced from:
      Dwarf Exception Unwind Info (__eh_frame) in binding.o
      Dwarf Exception Unwind Info (__eh_frame) in Rconnection.o
  "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
      Rexp::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rlist::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rvector::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rstrings::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rsymbol::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rstring::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rdouble::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      ...
  "std::basic_ostream<char, std::char_traits<char> >::operator<<(int)", referenced from:
      Rexp::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rvector::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
  "std::basic_ostream<char, std::char_traits<char> >::operator<<(unsigned int)", referenced from:
      Rexp::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rstrings::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rdouble::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
      Rinteger::os_print(std::basic_ostream<char, std::char_traits<char> >&)in Rconnection.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [binding.node] Error 1
make: *** [server] Error 2


Reply all
Reply to author
Forward
0 new messages