OVH Cloud OVH Cloud

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

6 réponses
Avatar
Aurelien Roux
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.

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.

Comment puis-je faire pour trouver un i686-pc-mingw32 (puisque la
machine cible est un P4) ?

Merci.

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


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

6 réponses

Avatar
Marc Chantreux
Aurelien Roux wrote:
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



Pourquoi ne pas utiliser le paquet ?

mingw32:
Installé : 3.4.5.20060117.1.dfsg-2
Candidat : 3.4.5.20060117.1.dfsg-2
Table de version :
*** 3.4.5.20060117.1.dfsg-2 0
400 ftp://ftp.fr.debian.org etch/main Packages
300 ftp://ftp.fr.debian.org unstable/main Packages
100 /var/lib/dpkg/status

Comment puis-je faire pour trouver un i686-pc-mingw32 (puisque la
machine cible est un P4) ?



pas dans le paquet en tout cas :

dpkg -L $( dpkg-query -f='${Package} ' --show '*mingw*' ) |
grep -F 686

ne me renvoie rien.

mc


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Aurelien Roux
Le Fri, Jan 12, 2007 at 01:53:50PM +0100, Marc Chantreux a écrit :
Aurelien Roux wrote:
>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

Pourquoi ne pas utiliser le paquet ?

mingw32:
Installé : 3.4.5.20060117.1.dfsg-2
Candidat : 3.4.5.20060117.1.dfsg-2
Table de version :
*** 3.4.5.20060117.1.dfsg-2 0
400 ftp://ftp.fr.debian.org etch/main Packages
300 ftp://ftp.fr.debian.org unstable/main Packages
100 /var/lib/dpkg/status




C'est justement ce que j'ai fait :

ii mingw32 3.4.5.20060117.1.dfsg-2 Minimalist GNU
win32 (cross) compiler
ii mingw32-binutils 2.16.91-20060119.1-1 Minimalist GNU
win32 (cross) binutils
ii mingw32-runtime 3.9-4 Minimalist GNU
win32 (cross) runtime



>Comment puis-je faire pour trouver un i686-pc-mingw32 (puisque la
>machine cible est un P4) ?

pas dans le paquet en tout cas :




Bah non, c'est bien le problème.

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


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Marc Chantreux
Aurelien Roux wrote:
J'ai suivi le tutoriel de la page suivante :
www.dumbbell.fr/howto/win32-cross-compilation.fr.html




C'est justement ce que j'ai fait


alors ne dis pas que "J'ai suivi le tutoriel de la page suivante" :)


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Aurelien Roux
Le Fri, Jan 12, 2007 at 02:20:24PM +0100, Marc Chantreux a écrit :
Aurelien Roux wrote:
>>>J'ai suivi le tutoriel de la page suivante :
>>>www.dumbbell.fr/howto/win32-cross-compilation.fr.html
>C'est justement ce que j'ai fait
alors ne dis pas que "J'ai suivi le tutoriel de la page suivante" :)



Arf, si, puisqu'ils disent : "Si votre OS a un système de paquets ou de
Ports, alors passez directement à la rubrique Les essais" ;p



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact





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


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Marc Chantreux
Aurelien Roux wrote:
Arf, si, puisqu'ils disent : "Si votre OS a un système de paquets ou de
Ports, alors passez directement à la rubrique Les essais" ;p



arf ...

tiens nous au courant (en tout cas, moi ca m'intéresse).

mc


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Eric DECORNOD
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 C C, LD
& co et examiner les Makefiles (oui c'est souvent pénible) pour préfixe r 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 to ut
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 facilemen t 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/automak e, et de
librairies « portables » comme glib).

les cross compileurs utilisent leurs propres «includes» par exemple sou s 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 null e 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é