I download Qt5.2beta, OpenCV 2.4.7, XCode 5.02, and Mac OSX 10.9 less than a week ago. I think they are the last one so far.

If I set -mmacosx-version-min=10.7 or 10.8, the same error message shows up.

I even have to remove the broken main.o by clean action in Qt to let the correct 10.9 setting to generate new main.o. (I also compared the broken main.o and OK main.o by using nm tool. They are different. So I think the problem happens at compile time, before the link stage. )

I noticed that not only OpenCV but also Boost has the same problem.
I have to add the same setting for a pure Boost (No OpenCV) program.
However, the pre-build Intel TBB does not affect by this flag.

Opencv was probably compiled with a different standard library then Qt is setup to use.
Qt binary distribution compile with -stdlib=libstdc++ to be compatible with 10.6, Xcode 5 on 10.9 will select -stdlib=libc++ by default (for OS X 10.7 and better only).
So symbol using classes from the standard library (like std::string in this case) will not resolve correctly at link time.
This is why you're seeing this error. Look with which standard library opencv is built:

otool -L opencv.dylib

You'll have to rebuild it with the right one or change Qt's mkspec to use the newer one.