[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [mingw32] pas de i686-pc-mingw32 à dispo ?



Le lundi 15 janvier 2007 09:00, Aurelien Roux a écrit :
> Le Fri, Jan 12, 2007 at 04:39:22PM +0100, Eric DECORNOD a écrit :
> > Il me semble que spécifier --target=i586-mingw32msvc comme option
> > à ./configure suffit pour utiliser les outils paquet mingw32.
> En fait, j'ai installé la version packagée.
Je parlais de nouvelles compilations, pas de mingw32 en lui-même.

> > > [...]
> > Un programme compilé/able sous linux ne passera pas forcément facilement
> > sous windows, il y a pas mal de détails qui perturbent la portablité des
> > programmes (d'où l'utilité des tests réalisables par autoconf/automake,
> > et de librairies « portables » comme glib).
> >
> > les cross compileurs utilisent leurs propres «includes» par exemple sous
> > linux stdlib.h sera /usr/include/stdlib.h alors que cross-compilé ce
> > sera /usr/i586-mingw32msvc/include/stdlib.h.
> > scanf, printf, sizeof(int) et autres peuvent avoir des comportements
> > différents. <pthread.h> par exemple n'existe pas sous mingw32...
> OK. Merci beaucoup pour ces infos.
> Cela dit, j'utilise un nombre de librairies très limité :
> stdio
> stdlib
> math
 
> En revanche, j'utilise en effet des sizeof (allocations dynamiques) et
> des scanf printf (et ça pourrait bien être dans le scanf qu'un problème
> se pose).
Mingw32 utilise des API de windows et notament MSVCRT qui ont des différences 
notables avec celles que l'ont utilise habituellement sous linux.
Par exemple : http://www.mingw.org/MinGWiki/index.php/C99

Ainsi il faut se référer à la documentation windows plustôt qu'à celle de gcc 
sous linux ; et user/abuser des #ifdef ...

> > A partir du moment où la compilation se déroule en -Wall sans warnings,
> > il faut en général passer au débogueur et modifier les sources.
> OK.
> Le souci est que le programme a besoin de nombreuses données en entrée,
> et le déboggage est très très long et compliqué.
D'où l'intérêt des assertions (déboguage ciblé) des tests unitaires 
(isolation) et tests de recettes.

> > Il est possible aussi qu'une variable non-initialisée ait une valeur
> > nulle sur une plateforme et aléatoire sur une autre.
> J'y ai pensé.
> A priori, je n'ai pas de variable non-initialisée, mais bon, après...
> > > Comment puis-je faire pour trouver un i686-pc-mingw32 (puisque la
> > > machine cible est un P4) ?
> > Les compilations avec i586-mingw32msvc... devraient fonctionner sur P4
> > tout aussi bien que i686-pc-mingw32.
> OK, donc ça ne vient pas de ça.
>
> Merci beaucoup !
de rien

> --
> ==========================================================
> Aurélien Roux

Cordialement,
-- 
Eric DÉCORNOD
Ingénieur d'Études
SCICS - Faculté des Sciences
Université Henri Poincaré



Reply to: