Compilation error on nodejs (8.x) SDK on cetnos6.8

 couchbase@2.4.1 install /microservice/vodContentIngest/node_modules/couchbase
 prebuild-install || node-gyp rebuild

prebuild-install info begin Prebuild-install version 2.1.2
prebuild-install info looking for local prebuild @ prebuilds/couchbase-v2.4.1-node-v57-linux-x64.tar.gz
prebuild-install info looking for cached prebuild @ /root/.npm/_prebuilds/https-github.com-couchbase-couchnode-releases-download-v2.4.1-couchbase-v2.4.1-node-v57-linux-x64.tar.gz
prebuild-install http request GET https://github.com/couchbase/couchnode/releases/download/v2.4.1/couchbase-v2.4.1-node-v57-linux-x64.tar.gz
prebuild-install http 404 https://github.com/couchbase/couchnode/releases/download/v2.4.1/couchbase-v2.4.1-node-v57-linux-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=8.8.1 runtime=node arch=x64 platform=linux)
make: Entering directory `/microservice/vodContentIngest/node_modules/couchbase/build'
  COPY ../deps/lcb/include/libcouchbase/libuv_io_opts.h
  COPY ../deps/lcb/include/libcouchbase/plugins/io/libuv/plugin-libuv.c
  COPY ../deps/lcb/include/libcouchbase/plugins/io/libuv/plugin-internal.h
  COPY ../deps/lcb/include/libcouchbase/plugins/io/libuv/libuv_compat.h
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_cccp.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_file.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_http.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_static.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/confmon.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/http/http.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/http/http_io.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/jsparse/parser.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/lcbht/lcbht.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/connect.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/ctx.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/iotable.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/ioutils.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/manager.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/protoctx.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/lcbio/timer.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/mc/compress.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/mc/forward.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/mc/mcreq.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/mcserver/mcserver.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/mcserver/negotiate.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/n1ql/ixmgmt.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/n1ql/n1ql.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/n1ql/params.o
../deps/lcb/src/n1ql/params.cc: In function ‘void encode_mutation_token(Json::Value&, const lcb_MUTATION_TOKEN*)’:
../deps/lcb/src/n1ql/params.cc:123: warning: format ‘%llu’ expects type ‘long long unsigned int’, but argument 3 has type ‘lcb_U64’
  CC(target) Release/obj.target/couchbase/deps/lcb/src/netbuf/netbuf.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/cbflush.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/counter.o
In file included from ../deps/lcb/src/operations/counter.cc:18:
../deps/lcb/src/trace.h:22: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/durability-cas.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/durability-seqno.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/durability.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/get.o
In file included from ../deps/lcb/src/operations/get.cc:19:
../deps/lcb/src/trace.h:22: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/observe-seqno.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/observe.o
In file included from ../deps/lcb/src/operations/observe.cc:20:
../deps/lcb/src/trace.h:22: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/pktfwd.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/ping.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/remove.o
In file included from ../deps/lcb/src/operations/remove.cc:19:
../deps/lcb/src/trace.h:22: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/stats.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/store.o
In file included from ../deps/lcb/src/operations/store.cc:19:
../deps/lcb/src/trace.h:22: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/subdoc.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/operations/touch.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/rdb/bigalloc.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/rdb/chunkalloc.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/rdb/libcalloc.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/rdb/rope.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/strcodecs/base64.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/vbucket/ketama.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/vbucket/vbucket.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/views/docreq.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/views/viewreq.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/auth.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bootstrap.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/callbacks.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/cbft.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/cntl.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/connspec.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/dns-srv.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/dump.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/errmap.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/getconfig.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/gethrtime.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/handler.o
In file included from ../deps/lcb/src/handler.cc:22:
../deps/lcb/src/trace.h:22: warning: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
  CC(target) Release/obj.target/couchbase/deps/lcb/src/hashtable.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/hostlist.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/instance.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/iofactory.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/legacy.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/list.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/logging.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/newconfig.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/nodeinfo.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/retrychk.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/retryq.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/ringbuffer.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/settings.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/timings.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/utilities.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/wait.o
  CC(target) Release/obj.target/couchbase/deps/lcb/plugins/io/select/plugin-select.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/ssl/ssl_c.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/ssl/ssl_common.o
  CC(target) Release/obj.target/couchbase/deps/lcb/src/ssl/ssl_e.o
  AR(target) Release/obj.target/deps/lcb/libcouchbase.a
  COPY Release/libcouchbase.a
  CC(target) Release/obj.target/httpparser/deps/lcb/contrib/http_parser/http_parser.o
  AR(target) Release/obj.target/deps/lcb/libhttpparser.a
  COPY Release/libhttpparser.a
  CC(target) Release/obj.target/genhash/deps/lcb/contrib/genhash/genhash.o
  AR(target) Release/obj.target/deps/lcb/libgenhash.a
  COPY Release/libgenhash.a
  CC(target) Release/obj.target/cjson/deps/lcb/contrib/cJSON/cJSON.o
  AR(target) Release/obj.target/deps/lcb/libcjson.a
  COPY Release/libcjson.a
  CC(target) Release/obj.target/cbsasl/deps/lcb/contrib/cbsasl/src/client.o
  CC(target) Release/obj.target/cbsasl/deps/lcb/contrib/cbsasl/src/common.o
  CC(target) Release/obj.target/cbsasl/deps/lcb/contrib/cbsasl/src/cram-md5/hmac.o
  CC(target) Release/obj.target/cbsasl/deps/lcb/contrib/cbsasl/src/cram-md5/md5.o
  CC(target) Release/obj.target/cbsasl/deps/lcb/contrib/cbsasl/src/hash.o
  AR(target) Release/obj.target/deps/lcb/libcbsasl.a
  COPY Release/libcbsasl.a
  CXX(target) Release/obj.target/snappy/deps/lcb/contrib/snappy/snappy-c.o
  CXX(target) Release/obj.target/snappy/deps/lcb/contrib/snappy/snappy-sinksource.o
  CXX(target) Release/obj.target/snappy/deps/lcb/contrib/snappy/snappy-stubs-internal.o
  CXX(target) Release/obj.target/snappy/deps/lcb/contrib/snappy/snappy.o
  AR(target) Release/obj.target/deps/lcb/libsnappy.a
  COPY Release/libsnappy.a
  CXX(target) Release/obj.target/jsoncpp/deps/lcb/contrib/lcb-jsoncpp/lcb-jsoncpp.o
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/memory:83,
                 from ../deps/lcb/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp:205:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h: In member function ‘virtual void* std::_Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp>::_M_get_deleter(const std::type_info&)’:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h:146: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h: In member function ‘virtual void* std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_M_get_deleter(const std::type_info&)’:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h:204: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h: In constructor ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_make_shared_tag, _Alloc, _Args&& ...)’:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h:861: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h: In function ‘_Del* std::get_deleter(const std::__shared_ptr<_Tp2, _Lp>&)’:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/shared_ptr.h:1005: error: cannot use typeid with -fno-rtti
make: *** [Release/obj.target/jsoncpp/deps/lcb/contrib/lcb-jsoncpp/lcb-jsoncpp.o] Error 1
make: Leaving directory `/microservice/vodContentIngest/node_modules/couchbase/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.4.0-96-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /microservice/vodContentIngest/node_modules/couchbase
gyp ERR! node -v v8.8.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok

what is your GCC version? Have you tried steps from this topic: Unable to install node SDK with ES6?

Hi @avsej.
I upgrade gcc to version 5.4.0.
Now to compliation is passing but when starting the server, I get error from couchbase sdk

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found (required by /microservice/server/node_modules/couchbase/build/Release/couchbase_impl.node

Just so clarify this only happens with nodejs 8.x.

I wonder if it would be possible to upload prebuilt binaries (like there are for nodejs 6.x)

What does say:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

Is it possible that your new gcc links against newer libstdc++, which is not available in run time?

Regarding binaries, I would rather ask @brett19, if it is possible.

Yes, it seems that the new gcc is installed in /usr/local/lib64/ while the original one is in /usr/lib64/. AFAIU, The problem is bigger than just change the installation destination, because in the real environment (which I can’t change) it will still try to go to /usr/lib64/ so I will still have this issue, even if I’m compiling on CI environment with newer compiler.
Am I missing something?

Could you try gcc 4.7 from EPEL (https://wiki.centos.org/AdditionalResources/Repositories)?