Mac4Ever PrixMac Acheter un Mac Refurb-Store Débuter sur Mac Forum : 630 connectés
icon
Mardi 01 Juin 2004

QT : créer des applications Mac, PC et Linux sans changer le code source !

Creation > Programmation
Créer des applications depuis un Mac ou un PC sous Windows/Linux, et les recompiler dans chaque environnement sans changer le code source, c'est tout à fait possible, grâce à QT ! Nous allons voir ici quelques exemples, et le principe général...
QT en quelques mots


QT : créer des applications Mac, PC et Linux sans changer le code source !
Les initiales « QT » évoquent chez les MacUsers que nous sommes, une référence à QuickTime. Pourtant, QT n'a rien à voir avec Apple, puisqu'il s'agit en réalité d'un environnement de programmation multi-plateforme, créé par la société TrollTech. Il vous permet donc de créer avec le même code source, des applications portables aussi bien pour Linux, Windows que pour Mac.

Niveau requis pour cet article


Sachez tout d'abord qu'avant de se mettre à QT, il faudra maîtriser le C/C++. Le niveau requis n'est pas très élevé, mais vous vous devez tout de même avoir en tête un certain nombre de concepts de programmation orientée objet, d'héritage etc. Nous avons d'ailleurs publié quelques tutoriels à ce sujet, si vous fouillez un peu sur Mac4Ever ;--)

Comment ça marche ?


Vous savez tous qu'une application PC (compilée sur Pentium/AMD) ne fonctionne pas sur Mac. Ceci est une évidence, car les applications sont crées à partir du code source, que l'on compile pour un processeur et un système d'exploitation bien précis. Dans QT, seul le code source est donc portable, il vous faudra bien évidemment recompiler votre programme pour chaque environnement, mais sans rien réécrire !

QT : créer des applications Mac, PC et Linux sans changer le code source !


Quels sont les outils disponibles ?


QT est vraiment très complet. Il se compose d'un éditeur graphique, pour créer vos fenêtres et vos classes (exactement comme pour Interface Builder d'Apple), d'un compilateur spécifique, et de librairies. Ceci étant les principaux composants de QT. Vous trouverez en périphérie, d'autres outils (des compilateurs spécifiques etc) et des exemples prêts à compiler, très utiles pour débuter.

Téléchargement et Installation


La version 3.x de QT est disponible en cliquant ici. Sachez par ailleurs que les versions Unix sont en général bien plus en avance que les versions Windows, et en particulier pour les versions gratuites, celles que nous allons utiliser. (A l'heure où je vous parle, on a largement atteint la version 3 sur Mac alors que sous Windows, c'est pour le moment la version 2 qui est gratuite).

Une fois le « .tar » téléchargé, sachez que l'installation n'est pas pour autant terminée. Vous trouverez dans le dossier, une fois décompressé, un fichier standard « Install.txt », qu'il faudra donc placer dans Text Edit ou autre, et donc exécuter les indications scrupuleusement.

Le procédure est décrite assez clairement, en anglais cependant, et je ne m'attarderait pas trop sur ce point car il n'y a pas tellement de difficultés.

Petit détail assez utile, on vous demande de créer des variables d'environnement en milieu d'installation. Cela consiste à créer un fichier « .profile » (ou .login, suivant votre terminal) dans lequel vous collerez les procédures données dans le fichier d'installation. Faites attention, un tel fichier ne peut être créé à partir de TextEdit, je vous conseille d'utiliser BBEdit. D'autre part, le système refusera peut-être d'enregistrer le nom « .profile ». Appelez le tout simplement "profile" et vous le renommerez avec le terminal. (mv profile .profile)

Le reste de l'installation est assez facile mais prendra un certain temps, car QTDesigner, ainsi que tous les exemples fournis, ne sont pas compilés. Il y en a pour une bonne heure si vous avez un petit G4, 20mn avec un G5 ou un G4 Dual.

Dernier point, lors de mes tests, j'ai eu quelques soucis avec les librairies QT, dont l'installation crée des alias dans le dossier "lib", et pour je ne sais quelle raison, ne fonctionnent pas toujours. Je vous conseille, si vous avez le même bug, de placer directement une copie de ces librairies dans le dossier "lib". Mais a priori, vous n'avez pas besoin de cela...

C++ et langage QT


QT n'est pas seulement un système de librairies graphiques, c'est avant tout un véritable environnement de programmation, comme cocoa par exemple. Je veux dire par là que, même si il est possible, et d'ailleurs conseillé pour certaines fonctions, de programmer en C++, sachez que QT possède ses propres méthodes, constructeurs etc. En clair, au lieu de créer un char* par exemple, vous aurez tout intérêt à utiliser les « QString », bien plus adaptées pour interagir avec l'interface graphique. Mais ceci n'est qu'un exemple, il existe aussi les QLists, QFile, QFont etc.

Toute la documentation sur les définitions des headers et des fonctions est incluse, et au format html. C'est clair, vraiment bien documenté et complet au possible.

Mon premier programme

Nous allons créer un programme assez simple, puisqu'il vous permet tout simplement d'écrire« Mac4Ever ! » dans une fenêtre. Ce programme sera écrit entièrement à la main, sans utiliser QTDesigner. C'est plus simple pour débuter.

Pour cela, nous allons définir trois fichiers :

Main.cpp, le fichier principal de l'application, qui sera chargé de lancer la fenêtre.
mafenetre.cpp qui gérera donc les composants de ladite fenêtre.
mafenetre.h, le fichier d'en-tête des fonctions et des déclarations de mafenetre.cpp

Voici à quoi ressemble un « main » typique de QT :


#include qapplication.h
#include "mafenetre.h"

int main( int argc, char **argv )
{
QApplication a( argc, argv );
mafenetre win;
a.setMainWidget(&win);
return a.exec();
}


Je ne détaille pas tout, mais cette fonction principale se contente de déclarer une nouvelle fenêtre principale (win), une nouvelle application (a) et de l'ouvrir. (a.exec(); ouvre la fenêtre)

Maintenant, nous allons placer un seul et unique composant sur la fenêtre, à savoir un QLineEdit (un champ de texte si vous voulez).

Voici à quoi le fichier mafenetre.h va ressembler :


#ifndef mafenetre_H
#define mafenetre_H

#include qwidget.h
#include qlineedit.h

class mafenetre : public QWidget
{
Q_OBJECT
public:
mafenetre();
private:
QLineEdit *le1;
private slots :
void affiche();
};
#endif



Là aussi, rien de bien complexe :
- votre fenêtre est une fenêtre dérivée de QWidget, qui est la fenêtre « mère » en QT.
- Q_Object est en fait, simplement une macro qui permet de traduire le language objet de QT en C++
- en privé, on définit un pointeur sur un élément de type QLineEdit
- la fonction affichetexte() affichera "Mac4Ever !" sur votre fenêtre lorsque vous cliquerez sur le bouton.
- n'oubliez pas d'inclure les bon headers ! (qlineedit.h si vous utilisez des QLineEdit etc.)

Passons maintenant à l'implémentation, soit le fichier fenetre.cpp :




#include "mafenetre.h"
#include qpushbutton.h
#include qlabel.h

// on définit maintenant le contructeur de la fenêtre, à savoir sa position
//sa taille etc.. On lui ajoute aussi un QPushButton et un QLabel (du texte)

mafenetre::mafenetre()
{
setGeometry(100,100,300,160);
QLabel *la;
la=new QLabel("Le texte va s'afficher ici : ",this);
la->setFixedSize(200,20);
la->move(50,20);
le1=new QLineEdit(this);
le1->setFixedSize(200,20);
le1->move(50,50);

QPushButton * b=new QPushButton("Affiche",this);
b->setFixedSize(100,40);
b->move(80,80);
connect(b, SIGNAL(clicked()), SLOT(affiche()) );
show();
}
void mafenetre::affiche()
{
QString s; s="Mac4Ever";
le1->setText(s);
}


Vous avez donc maintenant 3 fichiers distincts, et nous allons procéder à la compilation. Pour cela, dans le terminal, tapez :

cd votredossierduprogramme
*validez*
qmake -project
*validez*
qmake
*validez*
make
*validez*

Cette procédure crée 3 choses :
- le fichier votreprogramme.pro, qui est un peu le "sommaire" de votre programme. (Le « .xcode » si vous voulez !)
- le fichier makefile, qui contient les instructions de compilation
- enfin votre application, créé en tapant "make"

QT : créer des applications Mac, PC et Linux sans changer le code source !


C'est à ce moment là qu'il peut y avoir quelques erreurs, à vous de les corriger ;-)

Je vous conseille de travailler avec BBEdit, qui est disponible en FreeWare sur versiontracker...

QTDesigner, comment ça marche ?


Nous avons créé un fichier mafenetre.cpp et .h à la main. Sachez que cette procédure fastidieuse peut être exécutée avec un éditeur graphique (QTDesigner), bien plus adapté. Le principe est le suivant :

• On crée une nouvelle fenêtre avec QTDesigner (exemple : mafenetreGUI)

QT : créer des applications Mac, PC et Linux sans changer le code source !


• On connecte directement dans QTDesigner les boutons aux slots prédéfinis (c'est à dire à vos fonctions, que vous définirez plus tard, par héritage, mais on y reviendra)
• on enregistre le fichier « mafenetreGUI.ui » et on lance le terminal
• les fichiers ".ui" ne sont pas directement exécutables, car ils sont en XML et non en C++. Vous devez les transformer en fichier C++ pour les intégrer à votre programme.(même si la version 3 prend en charge directement le XML dans le terminal, ce n'est pas encore le cas sous Windows en version 2... Je vous conseille de le faire) Pour cela, vous appelez uic, qui est dans votre dossier QT. La procédure est la suivante :

/Developer/qt/bin/uic -o mafenetreGUI.h mafenetreGUI.ui
/Developer/qt/bin/uic -i mafenetreGUI.h -o mafenetreGUI.cpp mafenetreGUI.ui


Maintenant, vous avez donc créé l'interface et les slots. Il ne reste plus qu'à programmer mafenetre.cpp et mafenetre.h, Ici, au lieu de la faire hériter de QWidget, vous la faites hériter de mafenetreGUI ! C'est tout simple, et vous n'avez donc plus à donner les dimensions, à créer les boutons, à les déplacer etc... Simplement, à implémenter vos fonctions. Regardez bien les exemples fournis, ils sont très explicites.

Le prix de la portabilité


Petite détail qui a son importance : vous ne pouvez exécuter vos applications que si vous avez les 2 bibliothèques de QT installées sur votre machine. Si vous voulez donner vos applications à vos amis, il faut soit leur faire installer ces librairies, soit faire un script qui le fait au lancement du programme ou indépendamment.

QT : créer des applications Mac, PC et Linux sans changer le code source !


Il faut avouer que pour un petit programme de quelques centaines de Ko, c'est assez contraignant de devoir fournir des libs de 5MO. C'est moins gênant pour de gros projets, principal intérêt de QT. Mais c'est le prix de la portabilité ;--)

Un exemple, Photoshop Album a été créé en QT ! Comme quoi, ce n'est pas simplement un langage éducatif, mais cela peut permettre de concevoir de réels projets !

Conclusion


Voilà donc un aperçu de QT. Je ne suis pas trop entré dans les détails, car on pourrait en écrire des livres entiers. Pour l'avoir utilisé pendant 6 mois de façon assez intensive, je peux vous dire que c'est absolument génial de créer des applications 100% multi-plateformes, sans avoir à retoucher le code et l'adapter pour chaque OS/CPU. Inversement, questions simplicité d'utilisation, il va sans dire qu'il y a quelques astuces à prendre et qu'on ne retrouve pas non plus la légèreté des Developper Tools. Le but n'est toutefois pas le même, XCode étant évidemment principalement destiné à la programmation pour Mac OS X uniquement.

Notons que sur PC, il est possible de compiler avec VisualC++ alors que sur Mac, on attend toujours le plug-in pour XCode... Cela permet surtout plus de confort et évidemment, tout le débuggage facilité...

@ Didier


Les réactions à cet article
Témoignages et avis....
  • Le 01/06/2004, 12:54@ Sky.X : les .login et companie

    Il existe un moyen plus simple pour crée un .login (ou autre).
    echo "le texte à ajouter à la fin du fichier" >> ~/.login
    dans un terminal.

    Cette méthode permet de ne pas écraser un .login qui servirait à franciser GIMP par exemple.

    Voilà :)
  • Le 01/06/2004, 16:27@ Jérôme : pour ne pas distribuer 5Mb

    Il est possible de lier statiquement la bibliothèque de Qt, et la taille totale de l'éxecutable sera finalement bien inférieure à 5Mb, car le linkeur va supprimer les fonctions pas utilisées. Résultat : une application légère sans problème de lien avec une bibliothèque externe !

    Jérôme
  • Le 01/06/2004, 16:37@ Jérôme : projet XCode

    Ah ! Encore une chose : à partir d'un projet Qt (extension de fichier .pro), il est possible de générer un projet XCode.
    Par contre, lorsque de nouvelles classes sont créées au sein d'XCode, c'est le boxon pour générer les fichiers supplémentaires nécessaires pour Qt.
    Donc, je procède ainsi : je tiens toujours à jour le fichier projet de Qt (extension .pro), qui sera de toute façon celui utilisé lors d'une recompilation sur d'autres plateformes, et si je créé une nouvelle classe, je regénère le projet XCode à partir du fichier projet Qt mis à jour.

    Jérôme
  • Le 03/06/2004, 01:47@ bartocc : Et t'a code quoi ?

    alors comme ca t'a travaille pendant 6 mois avec QT et tu nous dis pas ce que t'a code, a moins que ce soit confidentiel ...

    par ailleurs, QT est aussi dispo via Fink ca qui facilite grandement l'installation
  • Le 04/06/2004, 15:06@ Obportus : QT via fink

    La version de QT dispo par fink est la version X11 et pas la version Mac OS X. Les applications compilées avec cette version ne peuvent être ouvert que dans X11.
  • Le 05/06/2004, 13:48@ Julien-Pierre Avérous : un mot clef inconnus

    Je connais pourtant bien le C/C++, le système de POO et donc des classes, mais j'avais jamais vu le "private slots :".
    ça correspond à quoi ? Je suppose à un private, mais amélioré...?
  • Le 05/06/2004, 14:33@ Jérome : private slots

    Qt étend les 'fonctionnalités' du C++ en offrant un mécanisme d'émission/réception de signaux. Ainsi, n'importe quelle classe (dérivée de QObject) peut émettre un signal sans avoir à connaître le(s) récepteur(s) et peut également recevoir un signal en établissant une connection de ce signal sur une méthode de la classe qui sera appelée lorsque le signal est émis. Dans la déclaration de la classe, les signaux que peut émettre la classe (qui sont de simples méthodes de la classe) sont indiqués par le mot-clé 'signals:' et les méthodes qui pourront être connectés sur un signal sont déclarées après le mot clé 'public slots' ou 'protected slots' ou 'private slots'.
    Dans l'exemple de code donné dans cet article, la méthode 'connect' indique que le signal 'clicked()' émis le bouton sera connecté à la méthode 'affiche()' de 'mafenetre'.
  • Le 05/06/2004, 16:23@ Julien : Oui mais ...

    Ok, dac. ça j'avais plus ou moins compris (mais c'est toujours bien de le préciser).

    Sur le point que j'avais pas tilté, c'est qu'on utilise pas notre compilateur (genre GCC ou CodeWarrior), mais bien un compilateur propre à QT, installé par QT. Et donc ce compilateur traite bien ce qu'il veut. Ils ont repris un compilateur C standard (manière de dire) et ils l'ont améliorer de manière à reconnaître certain mot clef inexistant dans le C ISO/ANSI, puisque c'est eux (les gars qui ont fait QT) qui l'ont inventé.

    C'est le même principe que l'Objective-C : c'est un compilateur bien dédier mais qui reprend des choses connus (le C) comme base.

    ok ok !
  • Le 07/06/2004, 21:42@ jerome : en fait...

    pour être plus précis (mais peut-être est-ce moi qui ai mal compris ton explication), Qt n'a pas son propre compilateur : un développement Qt est un développement en C++, qui peut être compilé par gcc ou CodeWarrior. Par contre, Qt, avec un outil, fait une précompilation des fichier qui on la macro Q_OBJECT afin de générer des fichiers CPP supplémentaires qui vont prendre en charge le mécanisme signal/slots. Après cette phase de précompilation, c'est un programme C++ tout à fait standard qui est compilé.
  • Le 11/06/2004, 01:31@ Kendy : mafenetre.cpp et mafenetre.h

    bonjour !
    j'ai commenceé aujourd'hui à m'intéresser à QT....débutant est un mot donc faible.
    la programmation c++ je connais (notez que je n'ai pas dis que je maîtrise..) les bases.

    j'ai lu cet article.
    essayé de coder 'à la main' l'interface, ça marche 'mac4ever' s'affiche :)
    hmm...arrivé à QTdesigner, je pense avoir bien fait l'interface, le spot, la connexion.
    pour le code de mafenetre.cpp et mafenetre.h je n'y arrive pas on dirait..j'ai 2 erreurs à la compile. voici mon code:

    mafenetre.cpp :
    #include "mafenetre.h"
    #include "form2.h"
    mafenetre::mafenetre()
    { }
    void mafenetre::affiche()
    {
    QString s; s="Mac4Ever";
    lineEdit4->setText(s);
    }


    mafenetre.h :
    #ifndef mafenetre_H
    #define mafenetre_H
    #include "form2.h"
    class mafenetre : public form2
    {
    public:
    mafenetre();
    private:
    void affiche();
    };
    #endif

    et voici les erreurs :
    -----------
    make
    g++ -c -pipe -Wall -W -O2 -fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/lib/qt3/mkspecs/default -I. -I. -I/usr/lib/qt3//include -o mafenetre.o mafenetre.cpp
    In file included from mafenetre.cpp:1:
    mafenetre.h:6: error: syntax error before `{' token
    mafenetre.cpp:5: error: invalid use of undefined type `class mafenetre'
    mafenetre.h:5: error: forward declaration of `class mafenetre'
    mafenetre.cpp:8: error: invalid use of undefined type `class mafenetre'
    mafenetre.h:5: error: forward declaration of `class mafenetre'
    mafenetre.cpp: In member function `void mafenetre::affiche()':
    mafenetre.cpp:10: error: `lineEdit4' undeclared (first use this function)
    mafenetre.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)
    make: *** [mafenetre.o] Erreur 1
    -----------


    ah oui et form, c'est le widget que j'ai crée, form.ui

    si vous pouviez m"indiquer comment passer la compilation..merci! et aussi merci pour l'article !
    a+ bonne journée !
  • Le 21/06/2004, 09:33@ Mickael / MooNSTER : Alternative de QT

    QT est en effet un "framework" trés complet, Développé par TrollTech, il a servi de base au developpement de KDE (le trés connu Window Manager sous linux), et a donc connu un support commercial ete financier qui l'a aidé a etre un vrai produit "commercial et fini".

    L'inconvenient majeur que je lui concede, et qu'il faut payer une licence QT sous windows a un prix assez exhorbitant si vous voulez vendre votre "production" (En effet, sur osx et linux, vous n'avez pas besoin de payer cette licence, mais si vous voulez diffuser aussi sur la magnifique et malheureusement (!) trop répandu plateforme Windows, alors il faut passer au tiroir caisse...)

    Il existe un autre framework: wxWindows (www.wxWindows.org) qui a toute les qualités de QT en etant sous licence LGPL (qui permet de revendre votre production sans aucun frais), la communité open source qui travaille dessus y est trés actif. Ce framework est aussi trés robuste, et ultra complet, il marche en cocoa natif ou en carbon, le nombre de plateforme supportées y est hallucinante (osx, windows, linux, solaris...), le framework n'est pas trop "deguelasse" (les classes sont un espece de mix entre les MFC (Windows framework) et les API Java).

    LE développement de wxWindows c'est entierement fais en opensource, a l'inverse QT, et donc le produit semble -moins- fini, mais il en est pas moins aussi voir plus efficace si l'on creuse bien dedans (et je le repete, il est surtout LGPL !!)

    J'ai personnelement ecris une appli utilisant un maximum de widget qui tourne trés bien sur osx, windows, et linux avec un "look and feel" natif sur chaque plateforme.

    Je ne serais que vous le conseiller si vous aimer l'open source :)

    Allez voir le site, et n'hesitez pas a regarder le nombre d'application professionel qu'ils l'utilisent ...

    Au plaisir :)
  • Le 21/06/2004, 12:56@ DEVELOPPEURS.INFO : Attendez plutôt Mono!

    Article très intéressant pour ceux qui veulent se mettre a QT. En tout cas si vous shouhaitez développer pour plusieurs plateformes, attendez que le projet Mono murisse un peu, ca devrait prendre environs 1 an, sachant que la première release est prévue pour cet été (mais sans IDE). Le projet Mono est soutenu par Novell, entre-autres.
  • Le 25/08/2004, 14:56@ Anthony35 : Help!

    Bonjours,

    j'ai lu une réaction à propos de wxWindows et je voudrais savoir si vous pouviez m'indiquer comment avez vous fait pour le compiler puis l'utiliser car lorsque je fait l'installation (le compiler dans le terminal) comme ils l'indiquent dans l'aide en anglais, une erreur arrive vers la fin.
    Je serais très heureux si vous pouviez m'aider.
  • Le 17/10/2004, 10:39@ blochaou : Fichier .Pro

    J'aimerais bien comprendre l'intégralité des données qui se trouvent dans le fichier .pro

    OBJECTS_DIR = _obj
    MOC_DIR = _moc
    UI_DIR = _ui

    TEMPLATE = app
    LANGUAGE = C++

    CONFIG += qt warn_on

    win32:LIBS += coin2.lib soqt1.lib
    unix:LIBS += -lSoQt -lCoin -L/usr/local/lib -lGL -L/usr/lib
    win32:DEFINES += SOQT_DLL COIN_DLL
    unix:DEFINES += SOQT_SHARED COIN_SHARED
    INCLUDEPATH += ./ VIDBAPI APP
    unix:INCLUDEPATH += /usr/local/include /usr/include
    Merci
  • Le 31/10/2004, 08:28@ libel : je sais pas trio quoi utiliser

    Salut ,

    boila je suis desesoperée , je viens de m'offrire un iBook G3 , g un la chance de travailler un peu avec LINUX , mais là je suis totalement perdue avec Apple, j,aimerais savoir koi faire pour compiler mon projet , ke j'ai déja commencer sur LINUX , g besoin de QT , car on utilise OpenGL , et QT, on m'a dit k'il faut compiler avec qmake, ça c bon, mais j'imagine k'il faut installer QT , avec de compiler sur mon shell de mac OS X 10.3.4 ....Aidez moi SVP, donner moi les étapesà suivre pour m'en sortir et pouvori enfin bosser chez moi bien au chaud ;)...
    Répondais moi au plus vit SVP !!
  • Le 31/10/2004, 08:38@ libel : je sais pas trop quoi utiliser

    désolée pour les fuates de frapes , il est 3h du mat chez moi
    merci de votre comprehension ;)

    ciao ciao

  • Le 04/11/2004, 18:48@ libel : encore des blems qvec mon qt

    Bonjour à tous,

    je suis à la fin de de mon installation de qt. Au court de make j'ai l'erreur suivant :


    /Developer/qt/bin/uic -L /Developer/qt/plugins listboxeditor.ui -o listboxeditor.h
    dyld: /Developer/qt/bin/uic can't open library: libqt.3.dylib (No such file or directory, errno = 2)
    make[4]: *** [listboxeditor.h] Trace/BPT trap
    make[3]: *** [sub-designer] Error 2
    make[2]: *** [sub-designer] Error 2
    make[1]: *** [sub-tools] Error 2
    make: *** [init] Error 2

    j'ai pu faire ln -sf $QTDIR/lib/libqt.3.dylib /usr/lib mais j'ai toujours la meme erreur :

    Alors AIDEZ MOI SVP!!
    MERCI de me repondre ou passer chez moi ;)
  • Le 23/03/2005, 18:10@ aykmena : aide

    Quelqu'un pourrait-il me donner des explications exhaustives pour créer un environnement de travail Qt3 dans cygwin.

    Merci d'avance
  • Le 23/03/2005, 18:10@ aykmena : aide

    Quelqu'un pourrait-il me donner des explications exhaustives pour créer un environnement de travail Qt3 dans cygwin.

    Merci d'avance
  • Le 19/05/2005, 17:52@ av@g.com : Qt n a pas son propre compil

    Non Qt n'as pas son propre compilateur, il utilise bien Gcc ou le compilateur de visual. Cependant les signaux et les slot ne sont evidement pas traite par le compilateur C/C++. Je pense qu il y a de la generation de code derriere ca.
  • Le 19/05/2005, 18:10@ Mathieu : Génération de code

    En effet, lorsque l'on compile, Qt lance un générateur de code qui transforme son pseudo code (les .ui et les fichiers projets) en un code compilable et linkable par GCC ou le compilo de Visual.
  • Le 23/08/2005, 10:35@ Sam : Question idiote : lien

    Hello macmiac,

    Je voudrai bien télécharger la version MAC de qt! Mais j'ai eu une tonne de soucis!

    Pouvez vous me donner le lien direct pour le dl?

    Merci beaucoup

    Et surtout comment faire l'interface entre QT et XCode?

    A+
    Sam
  • Le 23/10/2005, 15:10@ ni : j'ai besion d'aide

    je veux metriser le QT?
  • Le 20/03/2006, 17:18@ The Darkness : Aide Qt

    essaye d'abord de maîtriser l'orthographe...
    si tu as besoin d'aide sur Qt, va sur : http://www.trolltech.com/
    Sinon, pour toutes vos questions, recherchez sur des forums mac ou linux ou autres ... mais spécilaisés en programmation ..
  • Le 08/02/2008, 23:55@ wonchi : Existe déjà

    JAVA est surement plus simple à maitriser... que du C++. Et ormis le graphique (3D) c'est suffisant !
  • Le 25/02/2010, 09:51@ souzana : problème de qt eclipse

    sa mon problème s'il vous plait m'aider à trouver une solution dans une période trés courte car le programme est trés urgent
  • Le 25/02/2010, 09:53@ souzana : problème de qt eclipse

    sa mon problème s'il vous plait m'aider à trouver une solution dans une période trés courte car le programme est trés urgent et sa mon problème:
    mingw32-make debug
    mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory `C:/Users/AIDI/workspace111/SAWSEN'
    g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\Qt\2010.02\qt\include\QtCore" -I"..\..\..\..\Qt\2010.02\qt\include\QtGui" -I"..\..\..\..\Qt\2010.02\qt\include" -I"." -I"..\..\..\..\Qt\2010.02\qt\include\ActiveQt" -I"debug" -I"..\..\..\..\Qt\2010.02\qt\mkspecs\win32-g++" -o debug\main.o main.cpp
    main.cpp:129:18: warning: "/*" within comment
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\SAWSEN.exe debug/fenetre.o debug/main.o debug/moc_fenetre.o -L"c:\Qt\2010.02\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
    c:\Qt\2010.02\qt\lib/libqtmaind.a(qtmain_win.o): dans la fonction « WinMain@16 »:
    C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winmain/qtmain_win.cpp:93: référence indéfinie vers « _Unwind_Resume »
    C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winmain/qtmain_win.cpp:135: référence indéfinie vers « _Unwind_Resume »
    c:\Qt\2010.02\qt\lib/libqtmaind.a(qtmain_win.o):C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winmain/../../include/QtCore/../../src/corelib/tools/qvector.h:482: référence indéfinie vers « _Unwind_Resume »
    c:\Qt\2010.02\qt\lib/libqtmaind.a(qtmain_win.o):C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winmain/../../include/QtCore/../../src/corelib/tools/qvector.h:483: référence indéfinie vers « _Unwind_Resume »
    c:\Qt\2010.02\qt\lib/libqtmaind.a(qtmain_win.o):qtmain_win.cpp:(.eh_frame+0x12): référence indéfinie vers « __gxx_personality_v0 »
    collect2: ld returned 1 exit status
    mingw32-make[1]: *** [debug\SAWSEN.exe] Error 1
    mingw32-make[1]: Leaving directory `C:/Users/AIDI/workspace111/SAWSEN'
    mingw32-make: *** [debug] Error 2
  • Le 13/10/2011, 18:30@ kabitrochou : super htf land

    je ne sait pas
Donnez votre avis
Réagissez à cet article...
 
Si vous cherchez de l'aide ou si vous avez une question à poser, ne réagissez pas ici ! Redirigez-vous vers le forum !
Pseudo/Nom : Email (sera protégé contre le Spam) :
Titre :
Réaction :
Quelle est la 5eme lettre de Mac4Ever ?  

Rubriques
  • humeurcreationmateriel
  • logicielsjeuxmacos