[
https://issues.apache.org/jira/browse/THRIFT-4630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16611938#comment-16611938
]
eeliu commented on THRIFT-4630:
-------------------------------
I find the solution, this is because of smart_ptr between std and boost
Add CXXFLAGS="-DFORCE_BOOST_SMART_PTR" when configure.
> gcc 4.8.5 not pass
> ------------------
>
> Key: THRIFT-4630
> URL: https://issues.apache.org/jira/browse/THRIFT-4630
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.11.0
> Environment: Centos 7
> GCC 4.8.5
> boost 1.6.4
> Reporter: eeliu
> Priority: Blocker
> Fix For: 0.11.0
>
>
> > Configure
> ./configure --prefix=/home/test/.var/ --with-cpp --with-php=no
> --with-python=no --with-ruby=no --with-nodejs=no --with-qt4=no --with-java=no
> --enable-tests=no --with-boost=/home/test/.var/
> But when I switch to gcc 4.8.5, below error often annoy me most.
> undefined reference to
> `apache::thrift::protocol::TJSONProtocol::TJSONProtocol(boost::shared_ptr<apache::thrift::transport::TTransport>)'
>
> My code segment
> int32_t TBaseOPImp::writeTbaseToJsonFile(const boost::filesystem::path
> &filePath, const apache::thrift::TBase &tbase)
> {
> boost::shared_ptr<TMemoryBuffer> memoryBuffer(new TMemoryBuffer);
> boost::shared_ptr<TBufferedTransport> transportOut(new
> TBufferedTransport(memoryBuffer));
> --------------------Here alway fail -----------------------
> boost::shared_ptr<TJSONProtocol> protocolOut(new
> TJSONProtocol(transportOut));
> ......
> }
> My makefile output
> g++ -g3 -DTEST_SIMULATE -DBOOST_NO_CXX11_SMART_PTR test_case.o -isystem
> /home/test/.var/include -L/home/test/.var/lib -lboost_system -lboost_thread
> -lboost_filesystem -lboost_date_time -lthrift -lgcov -lrt -lpthread -o test
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)