[
https://issues.apache.org/jira/browse/PARQUET-798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15746302#comment-15746302
]
William Forson edited comment on PARQUET-798 at 12/13/16 9:55 PM:
------------------------------------------------------------------
<previous comment deleted>
I'm really sorry for posting my last couple comments more or less in realtime,
rather than waiting until I'd exhausted my own attempts to get things working
-- I blame this on slack!
Anyway, I have now come full circle, and I'm back to getting the compilation
error shown in my original post. excerpt:
{quote}
parquet-cpp/src/parquet/thrift/parquet_types.cpp:2646:3: error:
‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
^
{quote}
At any rate, I'll hold off posting anything else here until I'm more confident
that I'm not doing anything obviously wrong.
was (Author: wdf):
Interesting: I _thought_ the build was working (modulo the minor
{{libparquet_thrift.a}} issue mentioned in my most recent comment), but after
following your suggestion of getting rid of local system libraries (i.e. the
thrift libs in {{/user/local}}), the build is broken:
{quote}
[ 85%] Built target parquet_static
make[3]: Entering directory `/<my-dir>/parquet-cpp/build-dir'
Scanning dependencies of target decode_benchmark
make[3]: Leaving directory `/<my-dir>/parquet-cpp/build-dir'
make[3]: Entering directory `/<my-dir>/parquet-cpp/build-dir'
[ 88%] Building CXX object
benchmarks/CMakeFiles/decode_benchmark.dir/decode_benchmark.cc.o
make[3]: *** No rule to make target
`THRIFT_STATIC_LIB_PATH-NOTFOUND/libthrift.a', needed by
`debug/decode_benchmark'. Stop.
make[3]: Leaving directory `/<my-dir>/parquet-cpp/build-dir'
make[2]: *** [benchmarks/CMakeFiles/decode_benchmark.dir/all] Error 2
{quote}
> usage of THRIFT_HOME in build?
> ------------------------------
>
> Key: PARQUET-798
> URL: https://issues.apache.org/jira/browse/PARQUET-798
> Project: Parquet
> Issue Type: Bug
> Components: parquet-cpp
> Reporter: William Forson
> Attachments: cmake_output_original.txt
>
>
> Hi,
> I posted this issue a while back on the old parquet-cpp github page and
> forgot about it...until just now.
> First of all, to briefly describe my use case: I am using parquet-cpp as a
> dependency in a project which already has a dependency on thrift. As such,
> I'd like to be able to build parquet-cpp against the version of thrift which
> we are already using in the project.
> When I first spotted the notes regarding {{THRIFT_HOME}} in the readme, I
> thought this looked like exactly what I wanted -- that is, a way to configure
> the parquet-cpp build process to use external/pre-built thrift artifacts. So,
> for starters: am I simply misinterpreting the meaning of {{THRIFT_HOME}}?
> (e.g. does that specify a _destination_ directory for thrift artifacts built
> during the parquet-cpp 3p build step?) And if so, is there any good way (or
> bad way) to accomplish what I'm trying to do here?
> Otherwise, when I try to use my own thrift installation (via
> {{THRIFT_HOME}}), the build fails like so:
> {quote}
> $ make parquetcpp
> cd parquet-cpp && source ./thirdparty/set_thirdparty_env.sh && make
> make[1]: Entering directory `parquet-cpp'
> make[2]: Entering directory `parquet-cpp'
> make[3]: Entering directory `parquet-cpp'
> Scanning dependencies of target parquet_thrift
> make[3]: Leaving directory `parquet-cpp'
> make[3]: Entering directory `parquet-cpp'
> [ 1%] Building CXX object
> src/parquet/thrift/CMakeFiles/parquet_thrift.dir/parquet_types.cpp.o
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function
> ‘uint32_t
> parquet::format::Statistics::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:179:3: error:
> ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
> apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
> ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function
> ‘uint32_t
> parquet::format::Statistics::write(apache::thrift::protocol::TProtocol*)
> const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:244:3: error:
> ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
> apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
> ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function
> ‘uint32_t
> parquet::format::SchemaElement::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:357:3: error:
> ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
> apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
> ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function
> ‘uint32_t
> parquet::format::SchemaElement::write(apache::thrift::protocol::TProtocol*)
> const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:471:3: error:
> ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
> apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
> ^
> <SNIP ... you get the idea>
> ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function
> ‘uint32_t
> parquet::format::FileMetaData::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:2646:3: error:
> ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
> apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
> ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function
> ‘uint32_t
> parquet::format::FileMetaData::write(apache::thrift::protocol::TProtocol*)
> const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:2775:3: error:
> ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
> apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
> ^
> make[3]: ***
> [src/parquet/thrift/CMakeFiles/parquet_thrift.dir/parquet_types.cpp.o] Error 1
> make[3]: Leaving directory `parquet-cpp'
> make[2]: *** [src/parquet/thrift/CMakeFiles/parquet_thrift.dir/all] Error 2
> make[2]: Leaving directory `parquet-cpp'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `parquet-cpp'
> make: *** [<...>/libparquet.a] Error 2
> {quote}
> This kinda smells like a circular dependency (as all of the types/headers
> mentioned above look fine), but I haven't dug through the internals of the
> parquet-cpp build logic enough to diagnose it in more detail. Before doing
> so, I wanted to post here for a sanity check on my use case, and the intended
> semantics/usage of {{THRIFT_HOME}}.
> Any help/clarification will be much appreciated!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)