Node-gyp compile error on osx

try to install couchbase nodejs client on osx

sudo npm install couchbase

It reported error:

npm WARN cannot run in wd couchbase@1.2.4 (node-gyp rebuild 2> builderror.log) || (exit 0) (wd=/Users/mymac/node_modules/couchbase)

then I went to node_modules/couchbase and executed
npm install

It outputted the log error:

…/deps/lcb/src/compat.c:194:36: warning: missing field ‘v’ initializer [-Wmissing-field-initializers]
struct lcb_create_st cst = { 0 };
^
1 warning generated.
…/src/logger.h: In instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’:
…/src/logger.h:74: instantiated from here
…/src/logger.h:74: error: explicit instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’ but no definition available
…/src/logger.h: In instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’:
…/src/logger.h:74: instantiated from here
…/src/logger.h:74: error: explicit instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’ but no definition available
…/src/logger.h: In instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’:
…/src/logger.h:74: instantiated from here
…/src/logger.h:74: error: explicit instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’ but no definition available
…/src/logger.h: In instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’:
…/src/logger.h:74: instantiated from here
…/src/logger.h:74: error: explicit instantiation of ‘std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]’ but no definition available
make: *** [Release/obj.target/couchbase_impl/src/couchbase_impl.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:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:807:12)
gyp ERR! System Darwin 12.5.0
gyp ERR! command “node” “/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/couchbase
gyp ERR! node -v v0.10.28
gyp ERR! node-gyp -v v0.13.0
gyp ERR! not ok

It lookes like node-gyp can not compile the source code correctly.
Install same code on centos, ubuntu without any problem.

I am not sure if there are some configuration binding.gyp set up correctly or not

Your comment welcome
teriyaki
kaisatec commented 10 hours ago

I tried

export CC=gcc
export CXX=gcc
export CXXFLAGS=-mmacosx-version-min=10.8

or

export CC=clang
export CXX=clang
export CXXFLAGS=-mmacosx-version-min=10.8

and reinstall couchnode(it includes node-gyp compiling script)
but none worked

I’m not really sure what is happening there but the problem seems to be that -Wmissing-field-initializers and -Werror seem to be set by default here, at least this is how I can reproduce it when I build libcouchbase from source.

Also the problem with wd might be related to <a href="https://github.com/npm/npm/issues/3497>a npm issue you could try as suggested npm install --unsafe-perm

market, (Lux). have step. http://www.paulbroman.com/mains.asp?glass-230.html as with Rolls-Royce Council http://www.officewalkers.com/mains.asp?glass-138.html items of imported Convention http://www.paulbroman.com/mains.asp?glass-219.html jewelry rigorous Bai goods, http://www.kranjiauto.com.sg/mains.asp?glass-20.html

person that Qiao furniture, http://www.paulbroman.com/mains.asp?glass-135.html 2012 price the the http://www.kiancheongmetals.com/mains.asp?glass-10.html areas of Promotion advent http://www.kwbus.com/mains.asp?glass-153.html be Ministry markets, packaging http://www.kranjiauto.com.sg/mains.asp?glass-23.html

and Main years, cars http://www.gamlingandmcduck.com/mains.asp?glass-285.html of export and to http://www.kiancheongmetals.com/mains.asp?glass-250.html excellent “,” their reach http://www.newmoonlanding.ca/mains.asp?glass-213.html much Prada From the http://www.k-cparts.com/mains.asp?glass-177.html

try updating your node js version.