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
-
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?
-
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
-
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
-
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
-
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
-
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 :)