In fact, this is a linking problem, in Ubuntu 12.04 64bits, we should compile it by using
gcc xxx.c `pkg-config --cflags --libs gstreamer-xxx` -o output_file
(the src file name must followed with command gcc/g++ , some people must met this bug ever.), but I embed this code into a Qt project, I create the makefile by qmake, it can not put the src file name behind gcc/g++ automatic, so when I use ldd to check the share libs, it is not correct.
as I know in Ubuntu 32bits doesn't met this bug.