← retour à la page principale du projet
Rapport du jeudi 18 août 2005

Matin:
Il semblerait qu'il soit peut-être possible de faire tourner le soft sur une autre plate-forme Linux, à savoir la Red Hat 9. Même si de nos jours il serait plus judicieux d'instaler une distribution plus récente (genre Mandriva 10.3 ou Fedora Core 4, pour ne citer qu'elles), si la distribution est imposée, il serait utile de savoir si le soft marche sur cette distribution.
Ma Red Hat 9 (mise à jour via yum update) utilise Qt version 3.1.1. Or, nous avons vu que le programme ne compilait pas avec une version trop vieille. Il n'y a pas de qmake, uniquement qtconfig, qtconfig3, & qtcups (rien à voir, pour les imprimantes); il faut peut-être installer les packages devel.
Il est possible qu'avec une installation manuelle (genre CVS) d'une version plus récente (probablement la dernière version de Qt3), cela devrait marcher. Je n'ai évidemment pas non plus de Coin ou SoQt installé. Pour cela, je pense qu'il faudrait récupérer le serveur FTP de l'ISIA qui doit contenir Coin (dans /etc/yum.conf), sûrement aussi pour cette distribution. J'ai déjà donné l'adresse du serveur de l'ISIA dans un autre rapport (du genre ftp://ftp-sophia.cma.fr/pub/linux/distributions/Red-Hat/...). J'ai cherché, je n'ai pas trouvé de FTP couvrant la Red-Hat (mes souvenirs me font défaut); seuls Mandrake & Slackware sont supportées. Il faudrait donc aussi utiliser le CVS pour installer Coin & SoQt.


Après-midi:
Cela ne marche pas plus avec un booléen. Quand je mets la ligne Cosme::instanciated = true; au début du constructeur de Cosme, j'ai le message d'erreur suivant:
Cosme *Cosme::getInstance() called.
Cosme instance created.
Cosme *Cosme::getInstance() called.
make: *** [run] Segmentation fault
Quand je le mets à la fin, j'ai le même qu'hier:
Cosme *Cosme::getInstance() called.
Cosme instance created.
Cosme *Cosme::getInstance() called.
Cosme instance created.
Coin warning in SoQt::init(): This method should be called only once.
Cosme *Cosme::getInstance() called.
Cosme instance created.
Coin warning in SoQt::init(): This method should be called only once.
getWidth() - diff < FIXED_RING_HEIGHT_DEFAULT
getWidth(): 0.4 diff: 0.4       FIXED_RING_HEIGHT_DEFAULT: 0.4
Not enough place to insert a ring !
Ring Error (code 1) thrown.
terminate called after throwing an instance of 'RingError'
make: *** [run] Aborted
Bref, ça ne marche pas plus. C'est embêtant, parce que c'est justement l'utilité du schéma singleton, mais bon, je vais chercher à faire autrement. C'est probablement à cause du fait que j'appelle Cosme::getInstance() dans mon constructeur de Ring, & que mon constructeur de Cosme crée les 2 rings d'extrémité.
Pour palier à ce problème, je n'utilise cet appel que lorsque je veux créer un anneau de translation, mais ça plante aussi, je ne vois réellement pas pourquoi: "Segmentation fault".
Si je remplace ma condition de création if (!Cosme::instanciated) par (cosme_instance==NULL), c'est pire, il me lance un autre programme.
Oula, j'ai simplement recompilé, relancé le programme, & j'ai une erreur différente... Nico, si tu peux regarder un peu de ce côté là...
En fait, cela dépend de la position où je demande l'insertion d'un anneau.
On peut afficher & masquer le repère dorénavant.

À effectuer prochainement:

Valid XHTML 1.0 Transitional