Apache thrift undefined apache link :: thrift :: server :: TNonblockingServer

I am trying to compile a piece of code that TNonblockingServer creates and I get the following compilation error. Any idea what's wrong?

something_server.cpp:(.text+0x1ad): undefined reference to `apache::thrift::server::TNonblockingServer::serve()' something_server.cpp:(.text+0x1c1): undefined reference to `apache::thrift::server::TNonblockingServer::~TNonblockingServer()' something_server.cpp:(.text+0x280): undefined reference to `apache::thrift::server::TNonblockingServer::~TNonblockingServer()' 

I followed the steps described here when installing thrift. http://thrift.apache.org/docs/install/os_x/

Here is my makefile

 GEN_SRC := Something.cpp something_constants.cpp something_types.cpp GEN_OBJ := $(patsubst %.cpp,%.o, $(GEN_SRC)) THRIFT_DIR := /usr/local/include/thrift BOOST_DIR := /usr/local/include INC := -I$(THRIFT_DIR) -I$(BOOST_DIR) .PHONY: all clean all: something_server something_client %.o: %.cpp $(CXX) -Wall -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H $(INC) -c $< -o $@ something_server: something_server.o $(GEN_OBJ) $(CXX) $^ -o $@ -L/usr/local/lib -lthrift something_client: something_client.o $(GEN_OBJ) $(CXX) $^ -o $@ -L/usr/local/lib -lthrift clean: $(RM) *.o something_server something_client 
+4
source share
1 answer

As Dmitry noted, if we add the -lthriftnb command to the compilation, it solves the problem. These missing links are in libthriftnb.so There are links to libevent in this file. So I had to include -levent in the compilation command. Without -levent linker generates several error messages. Some of the messages are as follows:

 /usr/local/lib/libthriftnb.so: undefined reference to `event_set' /usr/local/lib/libthriftnb.so: undefined reference to `evbuffer_new' /usr/local/lib/libthriftnb.so: undefined reference to `evhttp_free' . . . . /usr/local/lib/libthriftnb.so: undefined reference to `event_del' 
+1
source

All Articles