Rocco Corsi created THRIFT-4909:
-----------------------------------

             Summary: t_cl_generator.cc:29:10: fatal error: 
boost/tokenizer.hpp: No such file or directory
                 Key: THRIFT-4909
                 URL: https://issues.apache.org/jira/browse/THRIFT-4909
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Compiler
    Affects Versions: 0.12.0
         Environment: Ubuntu 19.04
            Reporter: Rocco Corsi


Building Thrift 0.12.0 on Ubuntu 19.04, with this command:


bobo@bobo-VirtualBox:~/Downloads/thrift-0.12.0$ ./configure --with-cpp 
--without-python --with-boost=/home/bobo/Downloads/boost_1_57_0 
--with-openssl=/usr/lib/x86_64-linux-gnu/


I get this error:

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_rs_generator.o -MD -MP -MF 
src/thrift/generate/.deps/thrift-t_rs_generator.Tpo -c -o 
src/thrift/generate/thrift-t_rs_generator.o `test -f 
'src/thrift/generate/t_rs_generator.cc' || echo 
'./'`src/thrift/generate/t_rs_generator.cc
mv -f src/thrift/generate/.deps/thrift-t_rs_generator.Tpo 
src/thrift/generate/.deps/thrift-t_rs_generator.Po
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:10: fatal error: boost/tokenizer.hpp: 
No such file or directory
 #include <boost/tokenizer.hpp>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:1786: src/thrift/generate/thrift-t_cl_generator.o] Error 
1



Seems boost path is missing when compiling the compiler... When I run make 
command under strace, this is where it is looking for the tokenizer.hpp file.


11590 openat(AT_FDCWD, "./boost/tokenizer.hpp", O_RDONLY|O_NOCTTY) = -1 ENOENT 
(No such file or directory)
11590 openat(AT_FDCWD, "../../boost/tokenizer.hpp", O_RDONLY|O_NOCTTY) = -1 
ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "../../lib/cpp/src/thrift/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "../../lib/c_glib/src/thrift/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "./src/boost/tokenizer.hpp", O_RDONLY|O_NOCTTY) = -1 
ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "/usr/include/c++/8/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, 
"/usr/include/x86_64-linux-gnu/c++/8/boost/tokenizer.hpp", O_RDONLY|O_NOCTTY) = 
-1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "/usr/include/c++/8/backward/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, 
"/usr/lib/gcc/x86_64-linux-gnu/8/include/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "/usr/local/include/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, 
"/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "/usr/include/x86_64-linux-gnu/boost/tokenizer.hpp", 
O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory)
11590 openat(AT_FDCWD, "/usr/include/boost/tokenizer.hpp", O_RDONLY|O_NOCTTY) = 
-1 ENOENT (No such file or directory)


So first issue is that the boost include path is not being passed correctly to 
the compiler or maybe the issue is that the reference to boost include 
tokenizer.hpp is not even needed.


Then if I comment out the tokenizer.hpp file in the 
compiler/cpp/src/thrift/generate/t_cl_generator.cc file, like so:

//#include <boost/tokenizer.hpp>


it compiles fine.

So is the real issue that this include statement should just be removed as it 
is not really needed?



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to