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é

