Dear Rares,

On 24/09/2021 00:59, Rares Vernica wrote:
Hi,

I'm trying to compile Thrift 0.12.0 on a CentOS 7 system with a custom
Boost location. I configure it like this:

just to ask this, you do need this older version of thrift, and not the
newest with cmake? Some things will be easier with cmake as its just
more modern and in some aspects more flexible.

If you do want to use automake, did you try overriding CFLAGS, CXXFLAGS,
CPPFLAGS and LDFLAGS? It looks a bit ugly at first, but it is a very
standard way to pass additional compile settings. Something lik

export CPPFLAGS="-I/opt/3rdparty/boost/include"
export LDFLAGS="-L/opt/3rdparty/boost/lib"
./configure ...

may work perfectly well?

All the best,

    Mario


./configure --prefix=/opt/apache-thrift --enable-shared=no
--enable-tests=no --enable-tutorial=no --with-qt4=no --with-c_glib=no
--with-java=no --with-python=no --with-haskell=no --with-cpp=yes
--enable-static=yes --with-libevent=no --with-boost=/opt/3rdparty/boost

Configure seems to be picking up the custom location OK and sets up the C++
libraries for compilation:

thrift 0.12.0

Building C++ Library ......... : yes
...

C++ Library:
    C++ compiler .............. : g++ -std=c++11
    Build TZlibTransport ...... : yes
    Build TNonblockingServer .. :
    Build TQTcpServer (Qt4) ... : no
    Build TQTcpServer (Qt5) ... : no
    C++ compiler version ...... : g++ (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)

The include path flags seems to be set correctly:

# grep 3rdparty -R compiler/cpp | grep include
compiler/cpp/test/Makefile:BOOST_CPPFLAGS = -I/opt/3rdparty/boost/include
compiler/cpp/src/thrift/plugin/Makefile:BOOST_CPPFLAGS =
-I/opt/3rdparty/boost/include
compiler/cpp/src/Makefile:BOOST_CPPFLAGS = -I/opt/3rdparty/boost/include
compiler/cpp/Makefile:BOOST_CPPFLAGS = -I/opt/3rdparty/boost/include

But still, they don't seem to be actually used to compile the source code:

make
...
g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift
-I../../lib/c_glib/src/thrift  -I./src   -Wall -Wextra -pedantic -Werror -g
-O2 -MT src/thrift/generate/thrift-t_cl_generator.o -MD -MP -MF
src/thrift/generate/.deps/thrift-t_cl_generator.Tpo -c -o
src/thrift/generate/thrift-t_cl_generator.o `test -f
'src/thrift/generate/t_cl_generator.cc' || echo
'./'`src/thrift/generate/t_cl_generator.cc
src/thrift/generate/t_cl_generator.cc:29:31: fatal error:
boost/tokenizer.hpp: No such file or directory
  #include <boost/tokenizer.hpp>
                                ^
compilation terminated.
make[3]: *** [src/thrift/generate/thrift-t_cl_generator.o] Error 1

Notice that the BOOST_CPPFLAGS value is not included in the g++ command.
The missed file is available at the location provided to configure:

# ls /opt/3rdparty/boost/include/boost/tokenizer.hpp
/opt/3rdparty/boost/include/boost/tokenizer.hpp

Is there something missing?

Thanks,
Rares


Reply via email to