When I try to build my project with reference to a couple libraries, g++ tells me I don't have a definition for two functions: GC_pthread_join and GC_pthread_detach:

The two libraries I am linking to are libracket.a and libmzgc.a. Both GC_pthread_join and GC_pthread_detach are defined in libmzgc.a.

But the linker still balks:

Undefined symbols:
"_GC_pthread_join", referenced from:
_mz_proc_thread_wait in libracket.a(mzrt.o)
"_GC_pthread_detach", referenced from:
_mz_proc_thread_detach in libracket.a(mzrt.o)

When I peek inside libmzgc.a, I see a definition for GC_pthread_join and GC_pthread_detach. I am fairly sure I am linking this library in because the ensueing g++ linker command lists both of these libraries.

My project file mentions them this way:

LIBS += -L$$PLTSCHEME/lib -lmzgc -lracket

If I change the names at all it tells me it could not find the libraries, so I'm fairly sure it tries to link them in.

Any ideas? I feel like I am making some kind of a newbish mistake.