[Interest] static libs/osx

Tim Blechmann tim at klingt.org
Wed Dec 4 10:40:05 CET 2013


hi all,

i'm trying to compile qt-5.2.0-rc1 on osx as static library, configuring
with:

mkdir build
cd build
../configure -debug developer-build -static -c++11 -nomake tests -nomake
examples -skip qtwebkit


compilation worked fine (after i fixed javascriptcore), but i fail to
find the headers: on windows they are copied to build/qtbase/include in
the 'make install' step, but on osx the configure script tells me not to
run 'make install' and the build/qtbase/include folders only contain
QtXXXDepends headers.

trying to run 'make install' copies the mkspec files to build/qtbase,
but then ends with the following linker error:

> Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -stdlib=libc++ -mmacosx-version-min=10.7 -o ../../../bin/rcc .obj/rcc.o .obj/main.o   -L/Users/tim/dev/qt-everywhere-opensource-src-5.2.0-rc1/build/qtbase/lib -lQt5Bootstrap
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -stdlib=libc++ -mmacosx-version-min=10.7 -o ../../../bin/moc .obj/moc.o .obj/preprocessor.o .obj/generator.o .obj/parser.o .obj/token.o .obj/main.o   -L/Users/tim/dev/qt-everywhere-opensource-src-5.2.0-rc1/build/qtbase/lib -lQt5Bootstrap
> Undefined symbols for architecture x86_64:
>   "_CFBundleCopyExecutableURL", referenced from:
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>   "_CFBundleCopyInfoDictionaryForURL", referenced from:
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFBundleGetMainBundle", referenced from:
>       QCoreApplicationPrivate::macMenuBarName() in libQt5Bootstrap.a(qcoreapplication.o)
>       QCoreApplicationPrivate::appName() const in libQt5Bootstrap.a(qcoreapplication.o)
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>   "_CFBundleGetPackageInfoInDirectory", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFBundleGetValueForInfoDictionaryKey", referenced from:
>       QCoreApplicationPrivate::macMenuBarName() in libQt5Bootstrap.a(qcoreapplication.o)
>       QCoreApplicationPrivate::appName() const in libQt5Bootstrap.a(qcoreapplication.o)
> Undefined symbols for architecture x86_64:
>   "_CFBundleCopyExecutableURL", referenced from:
>   "_CFDictionaryGetValue", referenced from:
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFGetTypeID", referenced from:
>   "_CFBundleCopyInfoDictionaryForURL", referenced from:
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFRelease", referenced from:
>       qt_mac_to_pascal_string(QString, unsigned char*, unsigned int, int) in libQt5Bootstrap.a(qglobal.o)
>       qt_mac_from_pascal_string(unsigned char const*) in libQt5Bootstrap.a(qglobal.o)
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       ...
>   "_CFBundleGetMainBundle", referenced from:
>       QCoreApplicationPrivate::macMenuBarName() in libQt5Bootstrap.a(qcoreapplication.o)
>       QCoreApplicationPrivate::appName() const in libQt5Bootstrap.a(qcoreapplication.o)
>   "_CFStringCompare", referenced from:
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>   "_CFStringCreateWithBytes", referenced from:
>   "_CFBundleGetPackageInfoInDirectory", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringCreateWithCharacters", referenced from:
>   "_CFBundleGetValueForInfoDictionaryKey", referenced from:
>       QCFString::toCFStringRef(QString const&) in libQt5Bootstrap.a(qcore_mac.o)
>       QCFString::operator __CFString const*() const in libQt5Bootstrap.a(qcore_mac.o)
>       QCoreApplicationPrivate::macMenuBarName() in libQt5Bootstrap.a(qcoreapplication.o)
>       QCoreApplicationPrivate::appName() const in libQt5Bootstrap.a(qcoreapplication.o)
>   "_CFStringCreateWithCharactersNoCopy", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>   "_CFDictionaryGetValue", referenced from:
>   "_CFStringCreateWithPascalString", referenced from:
>       qt_mac_from_pascal_string(unsigned char const*) in libQt5Bootstrap.a(qglobal.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringGetCharacters", referenced from:
>   "_CFGetTypeID", referenced from:
>       QCFString::toQString(__CFString const*) in libQt5Bootstrap.a(qcore_mac.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringGetCharactersPtr", referenced from:
>       QCFString::toQString(__CFString const*) in libQt5Bootstrap.a(qcore_mac.o)
>   "_CFRelease", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>       qt_mac_to_pascal_string(QString, unsigned char*, unsigned int, int) in libQt5Bootstrap.a(qglobal.o)
>       qt_mac_from_pascal_string(unsigned char const*) in libQt5Bootstrap.a(qglobal.o)
>   "_CFStringGetLength", referenced from:
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       ...
>       QCFString::toQString(__CFString const*) in libQt5Bootstrap.a(qcore_mac.o)
>   "_CFStringCompare", referenced from:
>   "_CFStringGetPascalString", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>       qt_mac_to_pascal_string(QString, unsigned char*, unsigned int, int) in libQt5Bootstrap.a(qglobal.o)
>   "_CFStringGetSystemEncoding", referenced from:
>       qt_mac_to_pascal_string(QString, unsigned char*, unsigned int, int) in libQt5Bootstrap.a(qglobal.o)
>       qt_mac_from_pascal_string(unsigned char const*) in libQt5Bootstrap.a(qglobal.o)
>   "_CFStringCreateWithBytes", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringGetTypeID", referenced from:
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringCreateWithCharacters", referenced from:
>   "_CFURLCopyFileSystemPath", referenced from:
>       QCFString::toCFStringRef(QString const&) in libQt5Bootstrap.a(qcore_mac.o)
>       QCFString::operator __CFString const*() const in libQt5Bootstrap.a(qcore_mac.o)
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringCreateWithCharactersNoCopy", referenced from:
>   "_CFURLCreateFromFSRef", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFURLCreateWithFileSystemPath", referenced from:
>   "_CFStringCreateWithPascalString", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       qt_mac_from_pascal_string(unsigned char const*) in libQt5Bootstrap.a(qglobal.o)
>   "_CFURLGetString", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringGetCharacters", referenced from:
>   "_FSCopyAliasInfo", referenced from:
>       QCFString::toQString(__CFString const*) in libQt5Bootstrap.a(qcore_mac.o)
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringGetCharactersPtr", referenced from:
>   "_FSFindFolder", referenced from:
>       QCFString::toQString(__CFString const*) in libQt5Bootstrap.a(qcore_mac.o)
>       macLocation(QStandardPaths::StandardLocation, short) in libQt5Bootstrap.a(qstandardpaths_mac.o)
>   "_FSGetCatalogInfo", referenced from:
>   "_CFStringGetLength", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QCFString::toQString(__CFString const*) in libQt5Bootstrap.a(qcore_mac.o)
>   "_FSIsAliasFile", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFStringGetPascalString", referenced from:
>       qt_mac_to_pascal_string(QString, unsigned char*, unsigned int, int) in libQt5Bootstrap.a(qglobal.o)
>   "_FSNewAlias", referenced from:
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSPathMakeRef", referenced from:
>   "_CFStringGetSystemEncoding", referenced from:
>       qt_mac_create_fsref(QString const&, FSRef*) in libQt5Bootstrap.a(qglobal.o)
>       qt_mac_to_pascal_string(QString, unsigned char*, unsigned int, int) in libQt5Bootstrap.a(qglobal.o)
>       qt_mac_from_pascal_string(unsigned char const*) in libQt5Bootstrap.a(qglobal.o)
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSPathMakeRefWithOptions", referenced from:
>   "_CFStringGetTypeID", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSRefMakePath", referenced from:
>       macLocation(QStandardPaths::StandardLocation, short) in libQt5Bootstrap.a(qstandardpaths_mac.o)
>   "_CFURLCopyFileSystemPath", referenced from:
>   "_FSResolveAliasFile", referenced from:
>       qAppFileName() in libQt5Bootstrap.a(qcoreapplication_mac.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_Gestalt", referenced from:
>       QSysInfo::macVersion() in libQt5Bootstrap.a(qglobal.o)
>       __GLOBAL__I_a in libQt5Bootstrap.a(qglobal.o)
>   "_CFURLCreateFromFSRef", referenced from:
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_LSGetApplicationForURL", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_CFURLCreateWithFileSystemPath", referenced from:
>   "___CFConstantStringClassReference", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       CFString in libQt5Bootstrap.a(qcoreapplication.o)
>   "_CFURLGetString", referenced from:
>   "_compress2", referenced from:
>       qCompress(unsigned char const*, int, int) in libQt5Bootstrap.a(qbytearray.o)
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_kCFAllocatorDefault", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>   "_FSCopyAliasInfo", referenced from:
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_kCFAllocatorNull", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>   "_FSFindFolder", referenced from:
>   "_kCFBundleNameKey", referenced from:
>       macLocation(QStandardPaths::StandardLocation, short) in libQt5Bootstrap.a(qstandardpaths_mac.o)
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_uncompress", referenced from:
>       qUncompress(unsigned char const*, int) in libQt5Bootstrap.a(qbytearray.o)
>   "_FSGetCatalogInfo", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSIsAliasFile", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSNewAlias", referenced from:
> ld: symbol(s) not found for architecture x86_64
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSPathMakeRef", referenced from:
>       qt_mac_create_fsref(QString const&, FSRef*) in libQt5Bootstrap.a(qglobal.o)
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>       QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_FSPathMakeRefWithOptions", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>   "_FSRefMakePath", referenced from:
> make[3]: *** [../../../bin/rcc] Error 1
>       macLocation(QStandardPaths::StandardLocation, short) in libQt5Bootstrap.a(qstandardpaths_mac.o)
>   "_FSResolveAliasFile", referenced from:
>       QFileSystemEngine::getLinkTarget(QFileSystemEntry const&, QFileSystemMetaData&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
> make[2]: *** [sub-rcc-install_subtargets] Error 2
> make[2]: *** Waiting for unfinished jobs....
>   "_Gestalt", referenced from:
>       QSysInfo::macVersion() in libQt5Bootstrap.a(qglobal.o)
>       __GLOBAL__I_a in libQt5Bootstrap.a(qglobal.o)
>   "_LSGetApplicationForURL", referenced from:
>       QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "___CFConstantStringClassReference", referenced from:
>       CFString in libQt5Bootstrap.a(qcoreapplication.o)
>   "_compress2", referenced from:
>       qCompress(unsigned char const*, int, int) in libQt5Bootstrap.a(qbytearray.o)
>   "_kCFAllocatorDefault", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>   "_kCFAllocatorNull", referenced from:
>       QString::localeAwareCompare_helper(QChar const*, int, QChar const*, int) in libQt5Bootstrap.a(qstring.o)
>   "_kCFBundleNameKey", referenced from:
>       QFileSystemEngine::bundleName(QFileSystemEntry const&) in libQt5Bootstrap.a(qfilesystemengine_unix.o)
>   "_uncompress", referenced from:
>       qUncompress(unsigned char const*, int) in libQt5Bootstrap.a(qbytearray.o)
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> make[3]: *** [../../../bin/moc] Error 1
> make[2]: *** [sub-moc-install_subtargets] Error 2
> make[1]: *** [sub-src-install_subtargets] Error 2
> make: *** [module-qtbase-install_subtargets] Error 2

any idea?

thanks,
tim




More information about the Interest mailing list