Development of the next version of openlp.org, "my" open source lyrics projection application, is underway and gaining speed. We're wanting to make it cross-platform, and so we've decided to use Python and Qt4 (by way of PyQt4).
Since openlp.org 2.x is to be cross-platform, what better way to test it out than to install Qt4 on my Mac at work? Unfortunately this proved more work than I thought.
First I decided to download and install the pre-compiled binaries. They installed fine, and Qt Designer was defintely using Qt 4.4.3. However, when I went to install PyQt4, it's "configure" step could not find the Qt installation. Hmph.
After some extensive googling, I couldn't figure out how to get rid of that problem, short of compiling Qt itself. Hoping not to have to revert to that step, I sent an e-mail to the pyqt mailing list, and shortly thereafter got a reply saying that there were issues with the pre-compiled binaries and that I should just bite the bullet and compile.
Seeing no way of avoiding compiling, I set about to do so.
After downloading all 100-and-something megs of the source code, I extracted it and ran the ./configure command. This chugged away merrily for about 20 minutes, and then announced that everything was complete and there were no errors. Great, I thought, now to compile!
And then I ran into another error.
bindings/js/JSHTMLOptionElementConstructor.cpp:21:44: error: JSHTMLOptionElementConstructor.h: No such file or directory
bindings/js/JSHTMLOptionElementConstructor.cpp:32: error: 'JSHTMLOptionElementConstructor' has not been declared
bindings/js/JSHTMLOptionElementConstructor.cpp:32: error: ISO C++ forbids declaration of 'JSHTMLOptionElementConstructor' with no type
bindings/js/JSHTMLOptionElementConstructor.cpp: In function 'int WebCore::JSHTMLOptionElementConstructor(KJS::ExecState*, WebCore::Document*)':
bindings/js/JSHTMLOptionElementConstructor.cpp:33: error: only constructors take base initializers
[...]
make[2]: *** [.obj/debug-shared/JSHTMLOptionElementConstructor.o] Error 1
make[1]: *** [debug-all] Error 2
make: *** [sub-webkit-make_default-ordered] Error 2
After a bit of Googling, I came across a forum post that said that the file in question was incorrectly named. So I navigated to that directory, and sure enough, it was. A quick mv command, and I was back to compiling...
And then error number 2 struck.
make[2]: *** No rule to make target `platform/network/AuthenticationChallenge.cpp', needed by `.obj/debug-shared/AuthenticationChallenge.o'. Stop.
make[1]: *** [debug-all] Error 2
make: *** [sub-webkit-make_default-ordered] Error 2
Reading further in the previously mentioned forum post, I found that the user has experienced the same error. In the end he simply cut out WebKit, and Qt 4.4.3 compiled successfully. Unfortunately, that's not going to cut it for me. Further Googling did not help either.
So here I sit, trying to figure out how to get Qt to compile. Since the previous error forced the compiling to stop, I've cleaned the directory and I'm configuring and compiling again from scratch, and I'll see if that works. Unfortunately it's almost time for me to leave work, so I'll leave it compiling over night and I'll see what tomorrow morning holds for me. I'm hoping it's not more errors.






Re: Compiling Qt 4.4.3 on Mac OS X 10.4
Not sure if it'll improve things, but have you tried building Qt from pkgsrc[1]? I build 3rd party Unix software on my OS X systems using it and it works very well. I've not tried anything that uses Qt, but have no problem building fairly heavy apps like EasyTag.
[1] http://www.pkgsrc.org/