Explicitly use libstdc++ for non-C++11 static builds
Otherwise the compiler may choose libc++ based on the deployment target,
and we'll end up with broken builds due to the mismatch between the two
libraries, eg:
Undefined symbols for architecture x86_64:
"std::ios_base::Init::Init()", referenced from:
__GLOBAL__I_a in libQt5Qml.a(qv4object.o)
...
"std::ios_base::Init::~Init()", referenced from:
__GLOBAL__I_a in libQt5Qml.a(qv4object.o)
...
"std::__throw_length_error(char const*)", referenced from:
...
This problem is not iOS specific, which is why the logic is moved
to the more generic mac/default_post.prf.
Change-Id: I28b94e614f9167fc0db84bbf1c88dd97d5629938
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
bb10
parent
a4e0f4f80a
commit
4c980d2e9b
|
|
@ -25,6 +25,15 @@ qt:!isEmpty(QT_CONFIG) {
|
|||
warning("Qt was not built with C++11 enabled, disabling feature")
|
||||
CONFIG -= c++11
|
||||
}
|
||||
|
||||
!c++11 {
|
||||
# Explicitly use libstdc++ if C++11 support is not enabled,
|
||||
# as otherwise the compiler will choose the standard library
|
||||
# based on the deployment target, which for iOS 7 and OS X 10.9
|
||||
# is libc++, and we can't mix and match the two.
|
||||
QMAKE_CXXFLAGS += -stdlib=libstdc++
|
||||
QMAKE_LFLAGS += -stdlib=libstdc++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -178,15 +178,6 @@ macx-xcode {
|
|||
launch_images.files = $$copy_image.output
|
||||
QMAKE_BUNDLE_DATA += launch_images
|
||||
|
||||
!contains(QT_CONFIG, c++11) {
|
||||
# Explicitly use libstdc++ if C++11 support is not enabled,
|
||||
# as otherwise Xcode will choose the compiler default based
|
||||
# on the deployment target, which for iOS 7 is libc++. This
|
||||
# breaks compilation since Qt was built against libstdc++.
|
||||
QMAKE_CXXFLAGS += -stdlib=libstdc++
|
||||
QMAKE_LFLAGS += -stdlib=libstdc++
|
||||
}
|
||||
|
||||
# Make the default debug information format for debug builds
|
||||
# DWARF instead of DWARF with dSYM. This cuts down build times
|
||||
# for application debug builds significantly, as Xcode doesn't
|
||||
|
|
|
|||
Loading…
Reference in New Issue