Ошибка (неявное создание неопределенного шаблона) при установке 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’