GNOME Bugzilla – Bug 503877
Missing symbols in libgstinterfaces-0.10.lib and libgstreamer-0.10.lib
Last modified: 2007-12-16 16:46:47 UTC
I'm tring to compile the GStreamer backend for Phonon contained in the latest Qt 4.4 snapshot qt-win-opensource-src-4.4.0-snapshot-20071216.zip from ftp://ftp.trolltech.com/qt/snapshots/ on Windows XP. I'm using the latest (08-Oct-2007) GStreamer packages for Windows from http://gstreamer.freedesktop.org/pkg/windows/cvs/ with the MSVC 2005 Express compiler. The code compiles fine until linking: gsthelper.obj : error LNK2019: unresolved external symbol _gst_property_probe_probe_and_get_values referenced in function "public: static class QStringList __cdecl Phonon::Gstreamer::GstHelper::extractProperties(struct _GstElement *,class QString const &)" (?extractProperties@GstHelper@Gstreamer@Phonon@@SA?AVQStringList@@PAU_GstElement@@ABVQString@@@Z) mediaobject.obj : error LNK2019: unresolved external symbol _gst_tag_list_get_float referenced in function "void __cdecl Phonon::Gstreamer::foreach_tag_function(struct _GstStructure const *,char const *,void *)" (?foreach_tag_function@Gstreamer@Phonon@@YAXPBU_GstStructure@@PBDPAX@Z) mediaobject.obj : error LNK2019: unresolved external symbol _gst_tag_list_get_boolean referenced in function "void __cdecl Phonon::Gstreamer::foreach_tag_function(struct _GstStructure const *,char const *,void *)" (?foreach_tag_function@Gstreamer@Phonon@@YAXPBU_GstStructure@@PBDPAX@Z) Using objdump to look at the exported symbols of libgstinterfaces-0.10.lib and libgstreamer-0.10.lib shows, that not all functions from gst/interfaces/propertyprobe.h and gst/gsttaglist.h are exported (output is simplified): objdump -t libgstinterfaces-0.10.lib | grep gst_property_ _gst_property_probe_get_properties _gst_property_probe_get_property _gst_property_probe_get_type _gst_property_probe_get_values_name _gst_property_probe_needs_probe_name _gst_property_probe_probe_property_name objdump -t libgstreamer-0.10.lib | grep gst_tag_list_get _gst_tag_list_get_char _gst_tag_list_get_date _gst_tag_list_get_date_index _gst_tag_list_get_double_index _gst_tag_list_get_int _gst_tag_list_get_string _gst_tag_list_get_string_index _gst_tag_list_get_tag_size _gst_tag_list_get_type _gst_tag_list_get_uint _gst_tag_list_get_uint_index _gst_tag_list_get_value_index The symbols triggering the unresolved-external-symbol-errors are missing in this list.
Those builds are outdated. The problem with the missing symbols has been fixed in the 0.10.15 release, and we now have mechanisms in place to make sure we don't forget to add new symbols the the win32 .def files. Check out: http://webcvs.freedesktop.org/gstreamer/gst-plugins-base/win32/common/libgstinterfaces.def?view=log http://webcvs.freedesktop.org/gstreamer/gstreamer/win32/common/libgstreamer.def?view=log and bug #493983 and bug #493986. *** This bug has been marked as a duplicate of 493983 ***