First make sure your system meets all necessary Apache Thrift Requirements
If you are building from the first time out of the source repository, you will need to generate the configure scripts. (This is not necessary if you downloaded a released tarball.) From the top directory, do:
Once the configure scripts are generated, thrift can be configured. From the top directory, do:
Disable a language:
You may need to specify the location of the boost files explicitly. If you installed boost in /usr/local, you would run configure as follows:
If you want to override the logic of the detection of the Java SDK, use the JAVAC environment variable:
Note that by default the thrift C++ library is typically built with debugging symbols included. If you want to customize these options you should use the CXXFLAGS option in configure, as such:
./configure CXXFLAGS='-g -O2' ./configure CFLAGS='-g -O2' ./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
To see other configuration options run
Once you have run configure you can build Thrift via make:
and run the test suite:
and the cross language test suite:
"compiler/cpp/thriftl.cc:2190: undefined reference to `yywrap'"
mv: cannot stat "'.deps/TBinaryProtocol.Tpo': No such file or directory" while building the Thrift Runtime Library
Re-reun configure with
or by turning off parallel make by placing .NOTPARALLEL: in lib/cpp/Makefile or
make -j 1
Although the thrift compiler build appears to be compatible with parallel make without libtool lock, the thrift runtime build is not.
From the top directory, become superuser and do:
Note that some language packages must be installed manually using build tools better suited to those languages (this applies to Java, Ruby, PHP).
Look for the README file in the
lib/<language>/ folder for more details on the installation of each language library package.