Qt4 C++ Linux
Fermé
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
-
1 déc. 2007 à 15:35
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 - 9 déc. 2007 à 10:57
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 - 9 déc. 2007 à 10:57
A voir également:
- Qt4 C++ Linux
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
- Diskinternals linux reader - Télécharger - Stockage
- Linux live usb creator - Télécharger - Outils Internet
- Quel linux choisir - Guide
- Iso linux ubuntu - Télécharger - Systèmes d'exploitation
6 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 déc. 2007 à 16:19
1 déc. 2007 à 16:19
Salut,
les messages sont très clairs :
Dans la fonction threadFinished(), à la ligne 159, tu compares un entier signé et un non signé (warning).
A la ligne 163, tu utilises un membre nommé addButton, mais il en existe pas dans QMessageBox.
A la ligne 171, tu redéfinis la structure QMetaTypedId.
Voilà, http://doc.trolltech.com/ sur ce site, tu trouveras les réponses si tu sèches ;)
les messages sont très clairs :
main.cpp: In member function ‘void Main::threadFinished()’: main.cpp:159: warning: comparison between signed and unsigned integer expressions main.cpp:163: error: ‘class QMessageBox’ has no member named ‘addButton’ main.cpp: At global scope: main.cpp:171: error: redefinition of ‘struct QMetaTypeId<unsigned int>’ /usr/lib/qt4/include/QtCore/qmetatype.h:176: error: previous definition of ‘struct QMetaTypeId<unsigned int>’
Dans la fonction threadFinished(), à la ligne 159, tu compares un entier signé et un non signé (warning).
A la ligne 163, tu utilises un membre nommé addButton, mais il en existe pas dans QMessageBox.
A la ligne 171, tu redéfinis la structure QMetaTypedId.
Voilà, http://doc.trolltech.com/ sur ce site, tu trouveras les réponses si tu sèches ;)
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
1 déc. 2007 à 16:43
1 déc. 2007 à 16:43
merci pour ta réponse !
comme je l'ai dit je connais rien à Qt !
en fait comme j'utilise la version qt 4.1 et ne sachant pas quelle version est utilisée dans l'article, l'idée de savoir si mes messages d'erreur sont dû à un problème de version de Qt4 m'éviterait de chercher dans la mauvaise direction.
je vais essayer de regarder ça d'un peu plus près ! d'autre part j'ai également posté sur le forum Qt-fr.
:-))
comme je l'ai dit je connais rien à Qt !
en fait comme j'utilise la version qt 4.1 et ne sachant pas quelle version est utilisée dans l'article, l'idée de savoir si mes messages d'erreur sont dû à un problème de version de Qt4 m'éviterait de chercher dans la mauvaise direction.
je vais essayer de regarder ça d'un peu plus près ! d'autre part j'ai également posté sur le forum Qt-fr.
:-))
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
1 déc. 2007 à 18:28
1 déc. 2007 à 18:28
concernant : main.cpp:171: error: redefinition of ‘struct QMetaTypeId<unsigned int>’
l'article mentionne un petit topo sur sur les signaux et threads et il est question de référencer le type unsigned dans une macro :
et d'ajouter une instruction correspondante :
et je suppose comme il l'est dit qu'il faut remplacer unsigned par mon propre type. (......et là je comprend rien à ce qu'on me dit !).
pour le reste je sais pas car la portion de code du fichier main.cpp correspondante aux erreurs est justement absente dans l'article.
et ça m'ennuie de me lancer dans l'install de Qt4 à partir des sources ...
:-))
l'article mentionne un petit topo sur sur les signaux et threads et il est question de référencer le type unsigned dans une macro :
Q_DECLARE8METATYPE(unsigned)
et d'ajouter une instruction correspondante :
qregisterMetatype<unsigned>("unsigned");
et je suppose comme il l'est dit qu'il faut remplacer unsigned par mon propre type. (......et là je comprend rien à ce qu'on me dit !).
pour le reste je sais pas car la portion de code du fichier main.cpp correspondante aux erreurs est justement absente dans l'article.
et ça m'ennuie de me lancer dans l'install de Qt4 à partir des sources ...
:-))
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
1 déc. 2007 à 19:29
1 déc. 2007 à 19:29
Finalement je pense avoir mes réponses d'après ceci :
void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role )
Adds the given button to the message box with the specified role.
This function was introduced in Qt 4.2.
source : http://doc.trolltech.com/4.2/qmessagebox.html#addButton
concernant fract_3 et pour le reste des erreurs cela doit probablement passer sans souci avec Qt-4.2
concernant les temps obtenus avec fract_1 et fract_2, je suppose que mon très très vieux processeur n'est pas en mesure de faire ce genre d'exercice.
merci à ceux qui m'ont lu.
void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role )
Adds the given button to the message box with the specified role.
This function was introduced in Qt 4.2.
source : http://doc.trolltech.com/4.2/qmessagebox.html#addButton
concernant fract_3 et pour le reste des erreurs cela doit probablement passer sans souci avec Qt-4.2
concernant les temps obtenus avec fract_1 et fract_2, je suppose que mon très très vieux processeur n'est pas en mesure de faire ce genre d'exercice.
merci à ceux qui m'ont lu.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
3 déc. 2007 à 21:59
3 déc. 2007 à 21:59
Bonjour,
Je confirme :
après installation de Qt-4.3.2 à partir des sources sur la Mandriva, je n'obtiens plus de message d'erreur à la compile de l'exemple fract_3.
...enfin juste un petit détail que je n'ai toujours pas réglé ....ceci :
main.cpp: In member function ‘void Main::threadFinished()’:
main.cpp:159: warning: comparison between signed and unsigned integer expressions
obtenu à la compile de fract_3 (voir également post<3>) mais n'empêche pas le programme fract_3 de se lancer correctement.
si quelqu'un peut m'aider à comprendre ce que signifie remplacer unsigned par mon propre type !
merci.
:-))
Je confirme :
après installation de Qt-4.3.2 à partir des sources sur la Mandriva, je n'obtiens plus de message d'erreur à la compile de l'exemple fract_3.
...enfin juste un petit détail que je n'ai toujours pas réglé ....ceci :
main.cpp: In member function ‘void Main::threadFinished()’:
main.cpp:159: warning: comparison between signed and unsigned integer expressions
obtenu à la compile de fract_3 (voir également post<3>) mais n'empêche pas le programme fract_3 de se lancer correctement.
si quelqu'un peut m'aider à comprendre ce que signifie remplacer unsigned par mon propre type !
merci.
:-))
c'est un avertissement pour une comparaison signé / non signé qui peut donner des résultats incorrects pour certaines valeurs.
Ex pour un entier sur 1 octet:
signed char: valeurs possibles de -128 à +127
unsigned char: valeurs possibles de 0 à 255
Si tu compare dans la plage de valeurs commune (0 à +127) tout va bien, mais si tu compare des valeurs hors de cette plage tu va avoir des surprises... dans ton cas on peut supposer que ça ne gêne pas l'exécution du code, mais le compilateur te préviens du risque.
Ex de résultat indésirable:
signed char v1 = -1;
unsigned char v2 = 128;
if(v1==v2) {
printf ("-1 = 128 !!!");
}
Ex pour un entier sur 1 octet:
signed char: valeurs possibles de -128 à +127
unsigned char: valeurs possibles de 0 à 255
Si tu compare dans la plage de valeurs commune (0 à +127) tout va bien, mais si tu compare des valeurs hors de cette plage tu va avoir des surprises... dans ton cas on peut supposer que ça ne gêne pas l'exécution du code, mais le compilateur te préviens du risque.
Ex de résultat indésirable:
signed char v1 = -1;
unsigned char v2 = 128;
if(v1==v2) {
printf ("-1 = 128 !!!");
}
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
9 déc. 2007 à 10:57
9 déc. 2007 à 10:57
merci pour ta réponse !
dans ton cas on peut supposer que ça ne gêne pas l'exécution du code
ça ne semble pas géné en effet ! j'obtiens bien l'ouverture d'une fenêtre affichant l'avancement du calcul de l'image fractale.
néanmoins je vais regarder de plus près ton exemple (bien plus simple) pour comprendre ce message d'erreur.
encore merci.
:-))
dans ton cas on peut supposer que ça ne gêne pas l'exécution du code
ça ne semble pas géné en effet ! j'obtiens bien l'ouverture d'une fenêtre affichant l'avancement du calcul de l'image fractale.
néanmoins je vais regarder de plus près ton exemple (bien plus simple) pour comprendre ce message d'erreur.
encore merci.
:-))