Wait, hold up. Common sense suddenly prevailed. What http://stackoverflow.com/questions/6900839/error-when-trying-to-compile-webdis said is that the person who submitted the question put -levent in the wrong place. I realized that I wasn't using -levent at all, so I added that to ./build, and the dang thing finally built.
Trying to run the resulting executable gave me "./parcv_server: error while loading shared libraries: libthrift-0.8.0.so: cannot open shared object file: No such file or directory". So, I ran sudo ldconfig, and it apparently worked. So, what it looks like is: * Using -lthriftnb is probably necessary to cause TNonblockingServer to be found. * Building and installing thrift-0.8.0/lib/c_glib and/or thrift-0.8.0/lib/cpp may be necessary in order to cause libthriftnb.so to exist. * Using the flags Prasanna's pkg-config commands gave me may or may not be necessary for some reason I don't know. * Using -levent is probably necessary to avoid "undefined reference" errors caused by libthriftnb.so. * It's necessary to run ldconfig when appropriate. And the build command that finally worked: g++ -Wall -o parcv_server -DHAVE_NETINET_IN_H -DHAVE_INTTYPES_H -I/usr/local/include/thrift -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -L/usr/local/lib -lopencv_core -lopencv_contrib -lthrift -lthriftnb -lthrift_c_glib -lgobject-2.0 -lglib-2.0 -levent parcv_constants.cpp parcv_server.cpp parcv_types.cpp ParCV.cpp Thanks again for your help. Should I edit the page http://wiki.apache.org/thrift/ThriftUsageC++, section "Appendix: About TNonblockingServer", to say that you must include the flag -lthriftnb when compiling? Tanner
