Need Help: (QT 4.8.5 and Mavericks 10.9.4) ld: symbol(s) not found for architecture i386



  • Hello,

    I am having a hard time with an error I got running make and I think it may be a problem with QT.

    Before the error:
    @Undefined symbols for architecture i386:
    "_WKCreateMediaUIBackgroundView", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKCreateMediaUIControl", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTClearMediaDownloadCache", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTClearMediaDownloadCacheForSite", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTGetSitesInMediaDownloadCache", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTIncludeOnlyModernMediaFileTypes", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieDataRate", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieDisableComponent", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieGetType", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieHasClosedCaptions", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieMaxTimeLoaded", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieMaxTimeLoadedChangeNotification", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieMaxTimeSeekable", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieResolvedURL", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieSelectPreferredAlternates", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieSetShowClosedCaptions", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKQTMovieViewSetDrawSynchronously", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKWindowSetAlpha", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o
    "_WKWindowSetScaledFrame", referenced from:
    InitWebCoreSystemInterface() in WebSystemInterface.o@

    The error itself:

    @ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[3]: *** [../../../../../../lib/QtWebKit.framework/QtWebKit] Error 1
    make[2]: *** [release] Error 2
    make[1]: *** [sub-WebKit-qt-QtWebKit-pro-make_default-ordered] Error 2
    make: *** [sub-webkit-make_default-ordered] Error 2
    @

    The error seems to be coming from something I am missing or doing wrong with QT. I am not experienced in building so I really appreciate any help I can get on this since this error is standing in the way of completing my project.

    I am using QT 4.8.5 and Mavericks 10.9.4 and am trying to build an open source project called qcad.

    Thanks everyone


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    First thing and most important, 4.8.6 is currently the only official Qt 4 series version that supports Mavericks.

    Also, it looks like you are trying to build your project for 32bit, is that really what you want ?



  • Thank you for your reply SGaist. Perhaps I should try it over with 4.8.6 since that supports Mavericks.

    I don't want to build in 32bit I think because I have a brand new macbook pro so it is probably 64bit. How do I build in 32bit? Do I need to try it over again with QT 4.8.6 or can I do a quick fix to 64bit and try again?


  • Lifetime Qt Champion

    Even if your MacBook was a bit older, the last version of OS X running on 32bit processor is Snow Leopard which is quiet old by current standard.

    Just build your project for 64 bit



  • Could you tell me how to build in 64 bit or point me in the right direction? Thanks for replying so fast, I do appreciate it.


  • Lifetime Qt Champion

    By default Qt is built in 64bit so there should be nothing special to be done. Are you trying to build an external project ?



  • I am trying to modify an open source 2D drawing program called QCAD. I looked on the internet and saw that I need to configure Qt so that it knows to build in 64 bit. Here are the directions for building QCAD: http://www.qcad.org/en/component/content/article/78-qcad/111-qcad-compilation-from-sources

    I am trying to reconfigure Qt like this: cd qt-everywhere-opensource-src-4.8.5

    ./configure -fast -opensource -arch x86_64 -release \

    -no-qt3support -qt-zlib -qt-libtiff -qt-libpng -qt-libmng \

    -qt-libjpeg -confirm-license

    and make to see if it works this way. If you see anything wrong with this or if I should use a different version of Qt then please let me know.

    Thanks


  • Lifetime Qt Champion

    There's no need for the arch switch. Again, use 4.8.6 since you build from source anyway. You could also download the pre-built package.

    By the way, which version of Xcode are you using ?



  • Hello SGaist, I did start using 4.8.6 a few hours ago and it got through the error so thank you for suggesting that earlier. However I got a new error which is shown below:
    @Undefined symbols for architecture x86_64:
    "Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0>::qt_metacast(char const*)", referenced from:
    vtable for Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0> in window.o
    "Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0>::metaObject() const", referenced from:
    vtable for Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0> in window.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]: *** [capabilities.app/Contents/MacOS/capabilities] Error 1
    make[2]: *** [sub-capabilities-make_default-ordered] Error 2
    make[1]: *** [sub-phonon-make_default] Error 2
    make: *** [sub-examples-make_default-ordered] Error 2
    @

    I haven't heard of phonon (outside of my undergrad physics classes), do you know what it is and how to solve it? Thanks again for your help.

    My Xcode is Version 6.0.1


  • Lifetime Qt Champion

    Are you sure it wasn't about photons ? ;)

    Phonon is the multimedia backend used by Qt 4 however I doubt that QCAD makes use of it.

    This error generally appears when QObject wasn't properly moc'ed, did you start from a clean build ?

    On a side note, if you don't need phonon, you can also simply disable it for the time being to go forward.



  • SGaist, how do you disable Phonon from the build? Do I have to leave out something in the configure command? This is what I used to configure:

    @cd qt-everywhere-opensource-src-4.8.6
    ./configure -fast -opensource -arch x86_64 -release
    -no-qt3support -qt-zlib -qt-libtiff -qt-libpng -qt-libmng
    -qt-libjpeg -confirm-license@

    Thanks again for your help. Also, I was talking about "these phonons":http://en.wikipedia.org/wiki/Phonon



  • bump. I still need help =(


  • Lifetime Qt Champion

    Yes, just add -no-phonon don't forget to do a make confclean before restarting configure.

    If you want to simplify a bit things, you can do an out of source build, so if something goes wrong you can simply nuke the folder content and start over.

    Thanks for the link, I learned something new :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.