After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 731284 - GStreamer Fails to Link on iOS for Deployment Target > 6.1
GStreamer Fails to Link on iOS for Deployment Target > 6.1
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: cerbero
1.2.4
Other other
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-06-05 18:05 UTC by Christopher Vollick
Modified: 2016-05-22 18:35 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christopher Vollick 2014-06-05 18:05:35 UTC
We're using http://gstreamer.freedesktop.org/data/pkg/ios/1.2.4.1/ and the tutorials at cgit.freedesktop.org/~slomo/gst-sdk-tutorials/ and when we change the Deployment Target to something above 6.1 we get linker errors such as:

Undefined symbols for architecture i386:
"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage", referenced from:
  TagLib::String::String() in GStreamer(libtag_a_i386_-tstring.cpp.o)
  TagLib::String::~String() in GStreamer(libtag_a_i386_-tstring.cpp.o)
  TagLib::String::String() in GStreamer(libtag_a_i386_-tstring.cpp.o)
  TagLib::String::String(std::string const&, TagLib::String::Type) in GStreamer(libtag_a_i386_-tstring.cpp.o)
  TagLib::String::String(wchar_t const*, TagLib::String::Type) in GStreamer(libtag_a_i386_-tstring.cpp.o)
  TagLib::String::String(char const*, TagLib::String::Type) in GStreamer(libtag_a_i386_-tstring.cpp.o)
  TagLib::String::String(wchar_t, TagLib::String::Type) in GStreamer(libtag_a_i386_-tstring.cpp.o)

There are a lot, but that's one.

This also happens on our actual project, but we found it also happens on the tutorial while we were trying to figure out why one worked and the other didn't.
The tutorial is just an easier way for you to find it.
Comment 1 Vincent Penquerc'h 2014-06-12 10:50:28 UTC
Sounds like a missing -lstdc++.
Comment 2 Christopher Vollick 2014-06-12 16:30:54 UTC
The linked project does include libstdc++ in the invocation.

Changing only the "Deployment Target" and nothing else causes it to fail or not.
Comment 3 Brion Vibber 2014-07-06 18:19:35 UTC
I can confirm this happens with 1.3.90 as well; setting deployment target manually to 6.0 or 6.1 resolves it, but then you have to make sure your app runs on iOS 6...

IIRC Apple switched C++ standard libraries in iOS 7; the new default for iOS 7-only deployment targets is LLVM's libc++ and isn't compatible with the old one (libstdc++) which GStreamer seems to be built with.

I seem to have some difficulty just switching the C++ library while keeping an iOS 7 deployment target...
Comment 4 Tim-Philipp Müller 2016-02-28 21:07:30 UTC
Is this still relevant / still an issue these days with 1.7.2 ?
Comment 5 Tim-Philipp Müller 2016-05-22 18:35:57 UTC
We no longer support SDK versions older than 8.0, so this might have resolved itself in the meantime. Please re-open if it's still an issue, thanks!