[Qt-interest] Building Qt with clang
Philipp Münzel
mailing-lists at philippmuenzel.de
Tue Sep 6 22:31:20 CEST 2011
Update:
I have checked out a trunk of llvm and gcc and built it.
Trying to built Qt (git master) results now in a linker error:
Undefined symbols for architecture i386:
"___eprintf", referenced from:
_HB_HeuristicPosition in harfbuzz-shaper-all.o
_HB_HeuristicSetGlyphAttributes in harfbuzz-shaper-all.o
_HB_SelectScript in harfbuzz-shaper-all.o
_HB_ShapeItem in harfbuzz-shaper-all.o
_HB_IndicShape in harfbuzz-shaper-all.o
_HB_IndicAttributes in harfbuzz-shaper-all.o
_HB_GreekShape in harfbuzz-shaper-all.o
...
ld: symbol(s) not found for architecture i386
the full command that resulted in this error is:
clang++ -headerpad_max_install_names -arch i386 -single_module -dynamiclib -compatibility_version 4.8 -current_version 4.8.0 -install_name /usr/local/Trolltech/Qt-4.8.0/lib/QtCore.framework/Versions/4/QtCore -Xarch_i386 -mmacosx-version-min=10.4 -o QtCore .obj/release-shared/qlocale_mac.o .obj/release-shared/qabstractanimation.o .obj/release-shared/qvariantanimation.o .obj/release-shared/qpropertyanimation.o .obj/release-shared/qanimationgroup.o .obj/release-shared/qsequentialanimationgroup.o .obj/release-shared/qparallelanimationgroup.o .obj/release-shared/qpauseanimation.o .obj/release-shared/qfuture.o .obj/release-shared/qfutureinterface.o .obj/release-shared/qfuturesynchronizer.o .obj/release-shared/qfuturewatcher.o .obj/release-shared/qrunnable.o .obj/release-shared/qtconcurrentfilter.o .obj/release-shared/qtconcurrentmap.o .obj/release-shared/qtconcurrentresultstore.o .obj/release-shared/qtconcurrentthreadengine.o .obj/release-shared/qtconcurrentiteratekernel.o .obj/release-shared/qtconcurrentexception.o .obj/release-shared/qthreadpool.o .obj/release-shared/qglobal.o .obj/release-shared/qlibraryinfo.o .obj/release-shared/qmalloc.o .obj/release-shared/qnumeric.o .obj/release-shared/epocroot.o .obj/release-shared/registry.o .obj/release-shared/qatomic.o .obj/release-shared/qmutex.o .obj/release-shared/qreadwritelock.o .obj/release-shared/qmutexpool.o .obj/release-shared/qsemaphore.o .obj/release-shared/qthread.o .obj/release-shared/qthreadstorage.o .obj/release-shared/qmutex_unix.o .obj/release-shared/qthread_unix.o .obj/release-shared/qwaitcondition_unix.o .obj/release-shared/qbitarray.o .obj/release-shared/qbytearray.o .obj/release-shared/qbytearraymatcher.o .obj/release-shared/qcryptographichash.o .obj/release-shared/qdatetime.o .obj/release-shared/qeasingcurve.o .obj/release-shared/qelapsedtimer.o .obj/release-shared/qhash.o .obj/release-shared/qline.o .obj/release-shared/qlinkedlist.o .obj/release-shared/qlist.o .obj/release-shared/qlocale.o .obj/release-shared/qlocale_tools.o .obj/release-shared/qpoint.o .obj/release-shared/qmap.o .obj/release-shared/qmargins.o .obj/release-shared/qcontiguouscache.o .obj/release-shared/qrect.o .obj/release-shared/qregexp.o .obj/release-shared/qshareddata.o .obj/release-shared/qsharedpointer.o .obj/release-shared/qsimd.o .obj/release-shared/qsize.o .obj/release-shared/qstring.o .obj/release-shared/qstringbuilder.o .obj/release-shared/qstringlist.o .obj/release-shared/qtextboundaryfinder.o .obj/release-shared/qtimeline.o .obj/release-shared/qvector.o .obj/release-shared/qvsnprintf.o .obj/release-shared/qelapsedtimer_mac.o .obj/release-shared/harfbuzz-buffer.o .obj/release-shared/harfbuzz-gdef.o .obj/release-shared/harfbuzz-gsub.o .obj/release-shared/harfbuzz-gpos.o .obj/release-shared/harfbuzz-impl.o .obj/release-shared/harfbuzz-open.o .obj/release-shared/harfbuzz-stream.o .obj/release-shared/harfbuzz-shaper-all.o .obj/release-shared/qharfbuzz.o .obj/release-shared/qabstractfileengine.o .obj/release-shared/qbuffer.o .obj/release-shared/qdatastream.o .obj/release-shared/qdataurl.o .obj/release-shared/qdebug.o .obj/release-shared/qdir.o .obj/release-shared/qdiriterator.o .obj/release-shared/qfile.o .obj/release-shared/qfileinfo.o .obj/release-shared/qiodevice.o .obj/release-shared/qnoncontiguousbytedevice.o .obj/release-shared/qprocess.o .obj/release-shared/qtextstream.o .obj/release-shared/qtemporaryfile.o .obj/release-shared/qresource.o .obj/release-shared/qresource_iterator.o .obj/release-shared/qurl.o .obj/release-shared/qsettings.o .obj/release-shared/qfsfileengine.o .obj/release-shared/qfsfileengine_iterator.o .obj/release-shared/qfilesystemwatcher.o .obj/release-shared/qfilesystementry.o .obj/release-shared/qfilesystemengine.o .obj/release-shared/qfsfileengine_unix.o .obj/release-shared/qfilesystemengine_unix.o .obj/release-shared/qprocess_unix.o .obj/release-shared/qfilesystemiterator_unix.o .obj/release-shared/qfilesystemengine_mac.o .obj/release-shared/qsettings_mac.o .obj/release-shared/qfilesystemwatcher_fsevents.o .obj/release-shared/qfilesystemwatcher_kqueue.o .obj/release-shared/qpluginloader.o .obj/release-shared/qfactoryloader.o .obj/release-shared/quuid.o .obj/release-shared/qlibrary.o .obj/release-shared/qelfparser_p.o .obj/release-shared/qlibrary_unix.o .obj/release-shared/qabstracteventdispatcher.o .obj/release-shared/qabstractitemmodel.o .obj/release-shared/qbasictimer.o .obj/release-shared/qeventloop.o .obj/release-shared/qcoreapplication.o .obj/release-shared/qcoreevent.o .obj/release-shared/qmetaobject.o .obj/release-shared/qmetatype.o .obj/release-shared/qmimedata.o .obj/release-shared/qobject.o .obj/release-shared/qobjectcleanuphandler.o .obj/release-shared/qsignalmapper.o .obj/release-shared/qsocketnotifier.o .obj/release-shared/qtimer.o .obj/release-shared/qtranslator.o .obj/release-shared/qvariant.o .obj/release-shared/qcoreglobaldata.o .obj/release-shared/qsharedmemory.o .obj/release-shared/qsystemsemaphore.o .obj/release-shared/qpointer.o .obj/release-shared/qmath.o .obj/release-shared/qsystemerror.o .obj/release-shared/qcoreapplication_mac.o .obj/release-shared/qcore_mac.o .obj/release-shared/qcore_unix.o .obj/release-shared/qcrashhandler.o .obj/release-shared/qsharedmemory_unix.o .obj/release-shared/qsystemsemaphore_unix.o .obj/release-shared/qeventdispatcher_unix.o .obj/release-shared/qisciicodec.o .obj/release-shared/qlatincodec.o .obj/release-shared/qsimplecodec.o .obj/release-shared/qtextcodec.o .obj/release-shared/qtsciicodec.o .obj/release-shared/qutfcodec.o .obj/release-shared/qtextcodecplugin.o .obj/release-shared/qfontlaocodec.o .obj/release-shared/qiconvcodec.o .obj/release-shared/qstatemachine.o .obj/release-shared/qabstractstate.o .obj/release-shared/qstate.o .obj/release-shared/qfinalstate.o .obj/release-shared/qhistorystate.o .obj/release-shared/qabstracttransition.o .obj/release-shared/qsignaltransition.o .obj/release-shared/qeventtransition.o .obj/release-shared/qxmlstream.o .obj/release-shared/qxmlutils.o .obj/release-shared/moc_qabstractanimation_p.o .obj/release-shared/moc_qfuturewatcher.o .obj/release-shared/moc_qthreadpool.o .obj/release-shared/moc_qnamespace.o .obj/release-shared/moc_qthread.o .obj/release-shared/moc_qeasingcurve.o .obj/release-shared/moc_qlocale.o .obj/release-shared/moc_qtimeline.o .obj/release-shared/moc_qfile.o .obj/release-shared/moc_qiodevice.o .obj/release-shared/moc_qnoncontiguousbytedevice_p.o .obj/release-shared/moc_qtemporaryfile.o .obj/release-shared/moc_qsettings.o .obj/release-shared/moc_qfilesystemwatcher_p.o .obj/release-shared/moc_qfilesystemwatcher_fsevents_p.o .obj/release-shared/moc_qfilesystemwatcher_kqueue_p.o .obj/release-shared/moc_qpluginloader.o .obj/release-shared/moc_qlibrary.o .obj/release-shared/moc_qfactoryloader_p.o .obj/release-shared/moc_qabstracteventdispatcher.o .obj/release-shared/moc_qabstractitemmodel.o .obj/release-shared/moc_qeventloop.o .obj/release-shared/moc_qcoreapplication.o .obj/release-shared/moc_qcoreevent.o .obj/release-shared/moc_qmimedata.o .obj/release-shared/moc_qsocketnotifier.o .obj/release-shared/moc_qtimer.o .obj/release-shared/moc_qtranslator.o .obj/release-shared/moc_qobjectcleanuphandler.o .obj/release-shared/moc_qsharedmemory.o .obj/release-shared/moc_qeventdispatcher_unix_p.o .obj/release-shared/moc_qtextcodecplugin.o .obj/release-shared/moc_qabstractstate.o .obj/release-shared/moc_qstate.o .obj/release-shared/moc_qfinalstate.o .obj/release-shared/moc_qhistorystate.o .obj/release-shared/moc_qabstracttransition.o .obj/release-shared/moc_qsignaltransition.o .obj/release-shared/moc_qeventtransition.o -L/Users/philipp/Programming/qt/lib -lz -lm -framework ApplicationServices -framework CoreFoundation
Undefined symbols for architecture i386:
"___eprintf", referenced from:
_HB_HeuristicPosition in harfbuzz-shaper-all.o
_HB_HeuristicSetGlyphAttributes in harfbuzz-shaper-all.o
_HB_SelectScript in harfbuzz-shaper-all.o
_HB_ShapeItem in harfbuzz-shaper-all.o
_HB_IndicShape in harfbuzz-shaper-all.o
_HB_IndicAttributes in harfbuzz-shaper-all.o
_HB_GreekShape in harfbuzz-shaper-all.o
...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../lib/QtCore.framework/QtCore] Error 1
make[1]: *** [release] Error 2
make: *** [sub-corelib-make_default-ordered] Error 2
On 06.09.2011 20:51 "Philipp Münzel" <mailing-lists at philippmuenzel.de>
wrote:
> Good evening,
>
> out of curiosity I'm trying to build Qt with clang, especially since I
> saw in the QtCreator changelog that QtCreator now integrates with
> clang. I look forward to seeing the better error messages of clang.
>
> I checked out the master branch of Qt from gitorious, and configured
> with configure -platform unsupported/macx-clang
>
> My llvm-clang is the Apple build, shipped with XCode 4.1 and gives the
> following version info:
> Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM
> 3.0svn)
> Target: x86_64-apple-darwin11.1.0
> Thread model: posix
>
> When I start make however, the build fails soon with this error:
>
> kernel/qdnd_mac.mm:628:5: error: use of undeclared identifier
> 'SetRect'
> SetRect(&boundsRect, boundsPoint.h, boundsPoint.v, boundsPoint.h +
> ...
> ^
> 1 error generated.
>
> I tried with other branches of Qt, the 4.8 branch and also the
> specific git checkout mentioned in
> http://labs.qt.nokia.com/2010/10/29/compiling-qt-with-clang/
>
> Is the Apple version of clang branched after or before the version in
> the blogpost?
> Should I pull a recent clang from svn and build that? Or is at a
> completely different problem?
>
> Regards,
> Philipp
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-interest
>
More information about the Qt-interest-old
mailing list