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

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



Le vendredi 12 janvier 2007 11:45, Aurelien Roux a écrit :
> Bonjour,
>
> Je dois utiliser un programme en C codé sous Linux, et compilé sous
> Linux sous Windows.
>
> J'ai suivi le tutoriel de la page suivante :
> www.dumbbell.fr/howto/win32-cross-compilation.fr.html
>
> Le problème c'est qu'après install de mingw32, rien n'y fait, je n'ai
> pas de commande commençant par i686.
> Au mieux, j'ai une commande qui commence par i586.

Il me semble que spécifier --target=i586-mingw32msvc comme option 
à ./configure suffit pour utiliser les outils paquet mingw32.

Pour les compilations sans ./configure, il faut redéfinir les variables CC, LD 
& co et examiner les Makefiles (oui c'est souvent pénible) pour préfixer les 
commandes cc, g++, ld & co par i586-mingw32msvc-

L'exemple de la page citée compile sans problèmes.

> J'ai donc essayé de l'utiliser, certains des programmes fonctionnent,
> mais le principal semble présenter des problèmes d'overflow (ou en tout
> cas, de variables dont la valeur est inifinie....) dès que je le passe
> sous Windows.
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...

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.

Il est possible aussi qu'une variable non-initialisée ait une valeur nulle sur 
une plateforme et aléatoire sur une autre.

> 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.

> Merci.
>
> --
> ==========================================================
> Aurélien Roux
-- 
Eric DÉCORNOD
Ingénieur d'Études
SCICS - Faculté des Sciences
Université Henri Poincaré



Reply to: