We've been using Thrift successfully to make calls from a Java application into 
a C++ application. We began making callbacks from C++ to Java using 
THttpClient, but have run into linking errors.

I assume this is a problem either with my call to g++ to link or in my Thrift 
install. Since linking had worked up until the point of using THttpClient, I'm 
guessing it is a problem with the Thrift install?

We're using RedHat 6.7 - I followed the instructions on 
https://thrift.apache.org/docs/install/centos to get Thrift 0.9.1 installed. I 
can run Thrift form the command line and the install had worked for linking our 
server application until we started using the THttpClient class.

I've done what I would expect is to be the usual things - ldconfig to 
reload/rebuild its cache, verify the thrift library is available in 
/usr/local/lib, verify /usr/local/lib is on LD_LIBRARY_PATH and 
DYLD_LIBRARY_PATH as well as the proper -Lthrift g++ parameters.

The same code and cmake build compiles & links successfully on a Fedora 22 
development VM where we were able to install Thrift 0.9.1 via yum.

Do any of you have other pointers for what might be going wrong?

Here's a snippet of the build error:

undefined reference to 
`apache::thrift::transport::THttpClient::THttpClient(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char> >, int, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>)'

I'm suspicious of the "cxx11" references and wonder if my manual install of 
Thrift didn't use -std=c++11 or if it should have? Though I would have expected 
issues like that before now, if that were the case.

Thanks!
Tim

Reply via email to