QT création d'applications pour linux arm
Je me suis un peu confus quand il s'agit de l'intervalle QT et de la compilation croisée
appliations pour mon arm-linux:
Pour l'instant j'ai un linux sur mon AT91SAM9263-EK et d'un
filessystem y compris les libs QT est construit par buildroot.
J'ai aussi construire QT-4.8 sur mon ubuntu.
Maintenant, je veux construire un exemple d'application:
- J'ai créé un fichier makefile dans un dossier exemples de QT sur mon ubuntu à l'aide de
qmake; j'ai utilisé le qmake.conf dans mkspecs/aocg/linux-arm-g++. - lors de l'exécution de faire, j'obtiens une erreur parce qu'il comprend qatomic_i386.h
et le message "erreur: impossible de contrainte dans 'asm'".
ce fichier d'en-tête n'est évidemment pas correspondre à mon bras, la chaîne d'.
ma question:
comment configurer Qt sur mon ubuntu pour construire des binaires Qt pour mon linux embarqué
sur les bras? Dois-je inclure toutes les libs construire par le bras de la chaîne d'?
toute aide est très appréciée!
ce qui concerne
EDIT:
J'utilise l'-spec drapeau et passer le chemin de la "mkspecs/aocg/arm-linux-g++" où un "qmake.conf" est situé. Je n'ai pas changer quoi que ce soit ici parce que je ne sais pas qui qmake variables sont pertinentes pour le lien vers mon bras liés libs.
De sorte que le droit compilateur est utilisé, sur lequel j'ai pu vérifier lors de le rendre le processus commence. Mais j'ai observé que dans un fichier de configuration appelé qconfig.h il y a un ARC indicateur qui est fixé à i386 mais je n'ai pas à comprendre comment on peut configurer ce. Je ne pense pas que je devrais modifier manuellement ce fichier.
EDIT2:
quelqu'un sait ce qui est derrière le fichier qconfig.h?? dois-je régler manuellement?
OriginalL'auteur binaryguy | 2012-09-18
Vous devez vous connecter pour publier un commentaire.
Je vais le résoudre par moi-même 🙂
Après avoir passé un certain temps et la numérisation du web, je me suis un peu plus profondément impliqués comment tout cela fonctionne ensemble. Je n'ai pas compris comment générer un fichier exécutable pour mon BRAS périphérique cible. J'ai compris deux choses:
ne pas ajouter votre QT chemin pour X11 au début dans votre variable PATH. cela pourrait gâcher votre compilation croisée.
modifier le qmake.conf en conséquence. ajouter votre libs construire pour le périphérique cible, dans mon cas, sont situés à l'intérieur de buildroot. Ajoutez ces lignes à votre qmake.fichier conf:
QMAKE_CFLAGS += -O3-mars=armv5te
QMAKE_CXXFLAGS += -O3-mars=armv5te
QMAKE_INCDIR_QT = /home/utilisateur/bras/de la chaîne d'/buildroot-2010.11/sortie/mise en scène/usr/include
QMAKE_LIBDIR_QT = /home/utilisateur/bras/de la chaîne d'/buildroot-2010.11/sortie/mise en scène/usr/lib
Je l'ai eu à courir maintenant. merci à tout le monde!
OriginalL'auteur binaryguy
Oui, soit vous fournir les bibliothèques Qt dans votre chaîne d'outils ou de vous dire qmake où les trouver. Aussi, je soupçonne que vous êtes d'appel qmake sans la spécification des paramètres. Si vous utilisez le qmake-vous trouver dans votre distribution, il va utiliser la valeur par défaut spec, qui n'est pas le bras, je suppose. Ajouter l'-spec paramètre et qu'il pointe vers le bras mkspec. Aussi, assurez-vous que le générés g++ commandes de liaison à la bonne libs Qt compilé pour arm.
Vous devez fournir le chemin d'accès pour les en-têtes et les bibliothèques pour votre plate-forme (EGL, OpenGL, X11, etc...) et pour les bibliothèques Qt si ceux qui ne sont pas dans votre sysroot. Vous ne précisez pas de quel fichier de configuration dont vous parlez, donc aucune idée. Lire la qmake manuel et les liens fournis par liuyi de configuration les fichiers de spécifications correctement.
les liens décrire comment construire Qt lui-même, mais je veux construire une application par exemple. Je parle d'un fichier appelé qconfig.pri situé dans le mkspecs dossier. Ce fichier comprend un QT_ARCH variable qui est définie pour i386.
Votre question est trop générique. Ce qui s'est passé après que vous avez spécifié le -spec paramètre? Toujours la même erreur? Dans le deuxième lien, vous pouvez trouver "Créer une Cible Spécifique qmake cahier des charges". Aussi, comme je l'ai dit, lire le qmake manuel. Là, vous avez les spécifications de tous les qmake variables. Vous devrez peut-être modifier certains de ces en fonction de votre environnement.
Le qconfig.pri semble contenir des informations à propos de la construction. Vous devez être étant donné que je suppose. Il dépend de la façon dont les bibliothèques où construit. Vous pouvez essayer en changeant simplement la valeur de QT_ARCH de bras.
OriginalL'auteur Luca Carlon
Vous devez installer
QtSDK
pour linux embarqué avant de l'utiliser pour construire votre application. Je crains que vous avez justeQtSDK
pour x86 droit maintenant. AprèsQtSDK
pour linux embarqué installé, il a aocg/linux-arm-g++ par défaut mkspace généralement. Si vous n'avez pasQtSDK
pour linux embarqué, vous pouvez le compiler à partir des sources. Ensuite, exécutezqmake
pour créer un Makefile pour votre application.De référence:
L'installation de Qt pour Linux Embarqué et Cross-Compilation de Qt pour Linux Embarqué Applications
OriginalL'auteur liuyi.luo