2009-07-13 5 views
1

J'ai besoin de construire mon application console QT en 64 bits. à savoir x86_64Comment créer une application de console QT en 64 bits sous Mac OSX?

Mon fichier de configuration ressemble à ceci:

 
CONFIG += qt console debug x86_64 
CONFIG -= app_bundle 

HEADERS = HelperClass.h 
SOURCES = HelperClass.cpp \ 
      main.cpp 

La compilation va bien sans problème. Mais, quand la construction arrive à l'étape de liaison, elle se plaint que je n'ai pas l'architecture Qt x86_64.

Extrait de construction:

 
ld: warning in /Library/Frameworks/QtGui.framework/QtGui, missing required architecture x86_64 in file 
ld: warning in /Library/Frameworks/QtCore.framework/QtCore, missing required architecture x86_64 in file 
Undefined symbols: 
    "QIODevice::getChar(char*)", referenced from: 
... 

Ai-je besoin de télécharger la source Qt et de construire l'architecture nécessaire pour que cela fonctionne? Mon installation provient des fichiers binaires fournis pour Mac OSX - Qt 4.5.2 sur le site QT. Je suppose que cette version ne vient pas avec les versions 64 bits des bibliothèques. Ai-je raison?

+0

Pourriez-vous l'essayer sans le x86_64 dans la ligne de configuration? De cette façon, vous saurez avec certitude si oui ou non il s'agit d'un problème 64 bits. –

Répondre

0

A partir de la page Qt for Open Source C++ development on Mac OS X il apparaît que les 32 et 64 bibliothèques de bits doivent être inclus:

Mac package binaire en utilisant Cocoa pour Mac OS X 10.5 (32 bits et 64 bits) http://get.qtsoftware.com/qt/source/qt-mac-cocoa-opensource-4.5.2.dmg

Si vous rencontrez des problèmes, vous pouvez toujours essayer de télécharger la source de la même page:

http://get.qtsoftware.com/qt/source/qt-mac-opensource-src-4.5.2.tar.gz

et configurer avec:

-arch x86_64 

Voir http://doc.trolltech.com/4.5/developing-on-mac.html#universal-binaries

Notez que le lien ci-dessus mentionne que si aucun arc est spécifié, il construit 32bit pour la plate-forme actuelle.

0

Vous pouvez vérifier les bibliothèques en utilisant "fichier":

fichier $ /Library/Frameworks/QtGui.framework/QtGui /Library/Frameworks/QtGui.framework/QtGui: Mach-O binaire universel avec 4 architectures /Library/Frameworks/QtGui.framework/QtGui (pour l'architecture ppc64): bibliothèque partagée Mach-O 64-bit liée dynamiquement ppc64 /Bibliothèque/Frameworks/QtGui.framework/QtGui (pour l'architecture ppc7400): Mach-O lié dynamiquement bibliothèque partagée ppc /Library/Frameworks/QtGui.framework/QtGui (pour l'architecture x86_64): bibliothèque partagée Mach-O 64-bit liée dynamiquement x86_64 /Library/Frameworks/QtGui.framework/QtGui (pour l'architecture i386): bibliothèque partagée liée dynamiquement Mach-O i386

Je vois les mêmes erreurs "ld warning: ... missing architecture requise x86_64 in file", donc le message d'erreur est trompeur.

1

Le SDK QT n'inclut pas par défaut les bibliothèques 64 bits sous Mac OS X (je pense que c'est étrange mais c'est comme ça). Pour compiler mes applications en x86_64, je télécharge simplement les bibliothèques autonomes avec Cocoa (32/64 bits) et je les installe après l'installation du SDK.

Tout fonctionne comme un charme alors.