GNURadio ControlPort with Thrift Installation

Hello everyone,

I would like to use ControlPort with GNURadio version 3.7.12 on Ubuntu 16.04. The installation of thrift version 1.0.0 was successful and cmake shows thrift is enabled exactly as described on the wiki site https://wiki.gnuradio.org/index.php/ControlPort . But as I run make, there are the following error messages. Does anybody know this issue and how to fix it? Thank you very much.

(I already tried thrift version 0.9.2 and 0.9.3, but had trouble installing them)

[ 9%] Linking CXX shared library libgnuradio-runtime-3.7.12.0.so
[ 12%] Built target gnuradio-runtime
[ 12%] Linking CXX shared library libtest-gnuradio-runtime.so
[ 12%] Built target test-gnuradio-runtime
[ 12%] Linking CXX executable gr_runtime_test
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to apache::thrift::async::TConcurrentClientSyncInfo::getPending(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&)' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::async::TConcurrentSendSentry::TConcurrentSendSentry(apache::thrift::async::TConcurrentClientSyncInfo*)’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to apache::thrift::async::TConcurrentRecvSentry::~TConcurrentRecvSentry()' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::protocol::TProtocol::~TProtocol()’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to typeinfo for apache::thrift::protocol::TProtocolFactory' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::async::TConcurrentRecvSentry::TConcurrentRecvSentry(apache::thrift::async::TConcurrentClientSyncInfo*, int)’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to apache::thrift::async::TConcurrentSendSentry::commit()' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::async::TConcurrentClientSyncInfo::generateSeqId()’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to apache::thrift::protocol::TProtocolFactory::~TProtocolFactory()' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::server::TSimpleServer::TSimpleServer(boost::shared_ptrapache::thrift::TProcessor const&, boost::shared_ptrapache::thrift::transport::TServerTransport const&, boost::shared_ptrapache::thrift::transport::TTransportFactory const&, boost::shared_ptrapache::thrift::protocol::TProtocolFactory const&)’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to apache::thrift::async::TConcurrentSendSentry::~TConcurrentSendSentry()' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::async::TConcurrentClientSyncInfo::updatePending(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, apache::thrift::protocol::TMessageType, int)’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to apache::thrift::async::TConcurrentRecvSentry::commit()' libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference toapache::thrift::server::TThreadPoolServer::TThreadPoolServer(boost::shared_ptrapache::thrift::TProcessor const&, boost::shared_ptrapache::thrift::transport::TServerTransport const&, boost::shared_ptrapache::thrift::transport::TTransportFactory const&, boost::shared_ptrapache::thrift::protocol::TProtocolFactory const&, boost::shared_ptrapache::thrift::concurrency::ThreadManager const&)’
libgnuradio-runtime-3.7.12.0.so.0.0.0: undefined reference to `apache::thrift::async::TConcurrentClientSyncInfo::waitForWork(int)’
collect2: error: ld returned 1 exit status
gnuradio-runtime/lib/CMakeFiles/gr_runtime_test.dir/build.make:110: recipe for target ‘gnuradio-runtime/lib/gr_runtime_test’ failed
make[2]: *** [gnuradio-runtime/lib/gr_runtime_test] Error 1
CMakeFiles/Makefile2:753: recipe for target ‘gnuradio-runtime/lib/CMakeFiles/gr_runtime_test.dir/all’ failed
make[1]: *** [gnuradio-runtime/lib/CMakeFiles/gr_runtime_test.dir/all] Error 2
Makefile:160: recipe for target ‘all’ failed
make: *** [all] Error 2

This issue was solved by using thrift version 0.10.0. Version 0.11.0 caused similar error messages, but 0.10.0 seems to work. So I can install GNURadio from source with Controlport without using PyBombs…I’m happy:)