Search code examples
c++linuxthrift

How to enable TNonblockingServer while I'm building Thrift 0.9.2


I'm trying to build up a thrift with version 0.9.2, here is my command that I executed:

sudo ./configure --with-boost=/usr/local/boost_1.58.0

It will succeeded, but I get a returned message like this:

thrift 0.9.2

Building C++ Library ......... : yes
Building C (GLib) Library .... : yes
Building Java Library ........ : yes
Building C# Library .......... : no
Building Python Library ...... : yes
Building Ruby Library ........ : no
Building Haskell Library ..... : no
Building Perl Library ........ : no
Building PHP Library ......... : yes
Building Erlang Library ...... : no
Building Go Library .......... : no
Building D Library ........... : no
Building NodeJS Library ...... : no
Building Lua Library ......... : yes

C++ Library:
   Build TZlibTransport ...... : yes
   Build TNonblockingServer .. : no
   Build TQTcpServer (Qt) .... : yes

Java Library:
   Using javac ............... : javac
   Using java ................ : java
   Using ant ................. : /usr/bin/ant

Python Library:
   Using Python .............. : /usr/bin/python

PHP Library:
   Using php-config .......... : 

Lua Library:
   Using Lua .............. : /usr/bin/lua

If something is missing that you think should be present,
please skim the output of configure to find the missing
component.  Details are present in config.log.

I've tried many ways to let the Build TNonblockingServer option be YES but I failed.


Solution

  • You need libevent to be installed. Here are the relevant parts from configure.ac:

    AX_LIB_EVENT([1.0])
    have_libevent=$success
    

    and

    echo "   Build TNonblockingServer .. : $have_libevent"
    

    It's also listed under the "language requirements" section over here:

    Language requirements

    C++

    • Boost 1.53.0

    • libevent (optional, to build the nonblocking server)

    • zlib (optional)

    The minimum boost version is actually 1.54, the website is slightly outdated regaring that point.