Qt Creator + Qt 4.7.3 on Mac OS 10.6 - always builds x86_64, but I need 32 bit.
-
Looks like we are having trouble to pick the correct mkspec. As a workaround you can specify the mkspec you want via the qmake build step widget (Projects->Build Settings, somewhere in the middle of the page). I am not sure there actually is one available to build for 32bit PPC on Mac though.
Please "file a bug report":http://bugreports.qt.nokia.com/ if you find one:-)
-
OK I filed a bug report:
https://bugreports.qt.nokia.com/browse/QTCREATORBUG-5949
Sorry but I'm not quite sure how I would specify the mkspec to not tell the compiler to use "-arch x86_64 -Xarch_x86_64".
FYI - I have Xcode 3.2.6 installed and it will compile my app OK as 32 bit only when creating an XCode project from the .pro file.
-
-
That didn't work. I did a clean and rebuild of my app but I still see "-arch x86_64 -Xarch_x86_64" in the compile output. It's like it is totally ignoring it.
The following may be useful:
If in Qt Creator I go to the Build Settings, General and change the "Qt Version" from "Desktop Qt 4.7.3 for CGG (SDK)" to "Qt in PATH", then do a clean rebuild of my app I no longer get any of the x64 stuff included.
Does that mean something is messed up with my Qt install?
-
I don't know for sure, I never installed Qt from the SDK, but it may be that the SDK only delivers universal binaries containing intel code and/or containing only 64bit code. You can check yourself with
@
lipo -info /path/to/your/SDK/libs/QtGui.framework/QtGui
@The output will containt i386 and ppc7400 for Intel and PPC 32bit, and x86_64 for Intel 64bit.
Also, make sure that the command line for qmake in the build settings pane, does not contain any arch related stuff, as this can override the settings in the .pro file.
-
Are you sure the tooltip is from the Qt version you used to build? The one you caim to be using is 64bit only when I check it on the mac.
Please update the bug report with this information. Thanks!
-
michkol: Are you building that as a fat binary or as two separate binaries?
-
I just stumbled across this problem myself, though I don't fully understand it.
I'm running Creator 2.3.0, based on Qt 4.7.4 (64 bit).
So, do I understand correctly that I can't control which GCC the build process uses? In Preferences -> Tool Chains, I have Auto-detected entries for both 64 and 32 bit (as well as some PPC entries which I should probably get rid of). 64 is listed first, so I assumed that's why I was getting 64-bit integers in my code. Not so?
Thanks.
-
The toolchain on the Mac is a single one (although Creatore reports at least two). You have only one gcc (per version, you have gcc-4.0 and gcc-4.2 of course). This gcc can produce object code for Intel and PowerPC and for 32 and 64 bit, make four architectures altogether.
BUT: You cannot create an object file containing, let's say 32 and 64 bit Intel code, in case your Qt libs only contains 64 bit Intel code. In the end, the linker would complain that some code is missing.
I never used the prebuilt binaries or SDKs for the Mac myself, so I cannot tell you what's inside. You can find out yourself:
@
lipo /path/to/your/Qt/lib/QtGui.framework/QtGui
@It should print something like: Architectures in the fat file: /usr/local/Trolltech/Qt-4.7.3/lib/QtGui.framework/QtGui are: i386 ppc7400 - the architectures listed differ, of course :-)
By manipulating the CONFIG variable you control for which architectures code will be built.
-
OK, this might sound like an incredibly dumb question, but...how do I determine the path to my library? I've got so many Qt files and folders all over the place, I'm not sure which is which.
Thanks.
EDIT:
I don't know if this information is any help, but...
!http://scopedin.com/images/qttoolchains.jpg(tool chains)!
!http://scopedin.com/images/qtversions.jpg(versions)!
I also have a 4.7.3 version on my system. When I deleted it, the debugger didn't work right, so I put it back. It seems that I have some unnecessary stuff floating around...I'd like to get rid of it if possible.
-
Hi, Volker -
I found a directory that may be the one I want use for the lipo command, but I get an error:
bq. Macintosh-d49a20f3c0dc:~ mzimmers$ lipo /Developer/Applications/Qt/Desktop/Qt/474/gcc/lib/QtGui.framework
lipo: one of -create, -thin <arch_type>, -extract <arch_type>, -remove <arch_type>, -replace <arch_type> <file_name>, -verify_arch <arch_type> ... , -info or -detailed_info must be specified
lipo: Usage: lipo [input_file] ... [-arch <arch_type> input_file] ... [-info] [-detailed_info] [-output output_file] [-create] [-arch_blank <arch_type>] [-thin <arch_type>] [-remove <arch_type>] ... [-extract <arch_type>] ... [-extract_family <arch_type>] ... [-verify_arch <arch_type> ...] [-replace <arch_type> <file_name>] ...Does lipo need an argument?
Thanks.
-
Hi, Volker. Now I get this:
@Macintosh-d49a20f3c0dc:~ mzimmers$ lipo -info /Developer/Applications/Qt/Desktop/Qt/474/gcc/lib/QtGui.framework
lipo: Can't map input file: /Developer/Applications/Qt/Desktop/Qt/474/gcc/lib/QtGui.framework (Invalid argument)
Macintosh-d49a20f3c0dc:~ mzimmers$@
-
OK, now we're getting somewhere:
@Macintosh-d49a20f3c0dc:~ mzimmers$ lipo -info /Developer/Applications/Qt/Desktop/Qt/474/gcc/lib/QtGui.framework/QtGui
Non-fat file: /Developer/Applications/Qt/Desktop/Qt/474/gcc/lib/QtGui.framework/QtGui is architecture: x86_64
Macintosh-d49a20f3c0dc:~ mzimmers$
@So...where do I go from here? And, is there a way to be sure that this is indeed the path that Creator is using, since I seem to have a few versions hanging around?
Thanks.
-
Ok, that's what I suspected, but never could prove myself: The prebuilt Qt binaries from the SDK only contain code for Intel 64bit.
The only solution for a requirement that contains any 32bit support, is to build Qt manually. Make sure to add
@
-arch x86 -arch ppc
@to your configure call (x86 = 32 bit Intel, ppc = 32 bit PowerPC). You might want to add
@
-arch x86_64
@too, in case you need 64 bit Intel too.
-
Ahm, no. You will have to get the sources from the "download page":http://qt.nokia.com/downloads/downloads#qt-lib and do the usual configure, make, make install steps. See the "general installation guide":http://developer.qt.nokia.com/doc/qt-4.7/installation.html and the "Mac installation guide":http://developer.qt.nokia.com/doc/qt-4.7/install-mac.html for detailed instructions.