Ошибка (неявное создание неопределенного шаблона) при установке rhbase на Mac( High Sierra)

Я установил rhdfs, rmr2, Hbase, ZooKeeper, Hadoop1 без проблем. когда я устанавливал rhbase, эта ошибка была загружена в rJava, devTools и т. д..... установлена ​​через brew.(thrift ver 0.11.0)

скачал эту библиотеку на R.

RCurl bitops digest itertools rJava stringr RJSONIO caTools functional plyr ravro Rcpp devtools httr plyrmr reshape2

--cflags thrift
-std=c++11 -I/usr/local/Cellar/thrift/0.11.0/include/thrift

 g++ -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

это связано с версией C++ на этом MacOS? когда я гуглил это, я мог найти только несколько ответов, но они не помогли.

как я могу справиться с этим?

    R CMD INSTALL rhbase_1.2.1.tar 
* installing to library ‘/Users/Logan/Library/R/3.4/library’
* installing *source* package ‘rhbase’ ...
** libs
clang++  -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG   -I/usr/local/include  -I. -g  -DHAVE_UINTPTR_T -DHAVE_NETDB_H=1 -fpermissive -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -I./gen_cpp `pkg-config --cflags thrift` -Wall -fPIC  -Wall -g -O2  -c Hbase.cpp -o Hbase.o
In file included from Hbase.cpp:7:
./Hbase.h:80:30: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
  boost::shared_ptr<HbaseIf> iface_;
                             ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5438:61: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
                                                            ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5439:61: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
                                                            ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5302:73: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  HbaseClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) :
                                                                        ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5308:73: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  HbaseClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> ip...
                                                                        ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5308:138: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  ...iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) :
                                                                      ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5314:61: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() {
                                                            ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5317:61: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>'
  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getOutputPro...
                                                            ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5446:30: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
  boost::shared_ptr<HbaseIf> iface_;
                             ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5533:16: warning: 
      'apache::hadoop::hbase::thrift::HbaseProcessor::process' hides overloaded
      virtual function [-Woverloaded-virtual]
  virtual bool process(boost::shared_ptr<apache::thrift::protocol::TProt...
               ^
/usr/local/Cellar/thrift/0.11.0/include/thrift/TProcessor.h:145:16: note: 
      hidden overloaded virtual function 'apache::thrift::TProcessor::process'
      declared here: type mismatch at 1st parameter
      ('stdcxx::shared_ptr<protocol::TProtocol>' vs
      'boost::shared_ptr<apache::thrift::protocol::TProtocol>')
  virtual bool process(stdcxx::shared_ptr<protocol::TProtocol> in,
               ^
In file included from Hbase.cpp:7:
./Hbase.h:5490:45: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
  HbaseProcessor(boost::shared_ptr<HbaseIf> iface) :
                                            ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5542:55: error: virtual function 'getProcessor' has a different return
      type ('::boost::shared_ptr< ::apache::thrift::TProcessor>') than the
      function it overrides (which has return type
      'stdcxx::shared_ptr<TProcessor>')
  ::boost::shared_ptr< ::apache::thrift::TProcessor > getProcessor(cons...
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/usr/local/Cellar/thrift/0.11.0/include/thrift/TProcessor.h:215:42: note: 
      overridden virtual function is here
  virtual stdcxx::shared_ptr<TProcessor> getProcessor(const TConnectionI...
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
In file included from Hbase.cpp:7:
./Hbase.h:5545:41: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIfFactory>'
  ::boost::shared_ptr< HbaseIfFactory > handlerFactory_;
                                        ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5556:39: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
  void add(boost::shared_ptr<HbaseIf> iface) {
                                      ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5563:7: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
      ifaces_[i]->enableTable(tableName);
      ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5570:7: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
      ifaces_[i]->disableTable(tableName);
      ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5578:16: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
        return ifaces_[i]->isTableEnabled(tableName);
               ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5580:9: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
        ifaces_[i]->isTableEnabled(tableName);
        ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5588:7: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
      ifaces_[i]->compact(tableNameOrRegionName);
      ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
In file included from Hbase.cpp:7:
./Hbase.h:5595:7: error: implicit instantiation of undefined template
      'boost::shared_ptr<apache::hadoop::hbase::thrift::HbaseIf>'
      ifaces_[i]->majorCompact(tableNameOrRegionName);
      ^
/usr/local/include/boost/exception/exception.hpp:19:44: note: template is
      declared here
namespace boost { template <class T> class shared_ptr; };
                                           ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make: *** [Hbase.o] Error 1
ERROR: compilation failed for package ‘rhbase’
* removing ‘/Users/Logan/Library/R/3.4/library/rhbase’

0 ответов

Другие вопросы по тегам