Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/07/2007, à 13:55

otheym

[Résolu] Impossible de faire de la cross-compilation

Bonjour à tous,

J'ai voulu tester la cross-compilation pour un programme en C afin de compiler un EXE Win32.

Mais j'ai un petit problème, une fois compilé en suivant le tuto : http://doc.ubuntu-fr.org/tutoriel/comment_utiliser_mingw32_pour_faire_des_executables_windows
je ne peux pas lancer l'éxécutable.

Voila ce que me réponde Wine :

christophedlr@Arrakis:~/progs/cours/c/tp/plus_moins$ wine plusmoins.exe
wine: could not load L"Z:\\home\\christophedlr\\progs\\cours\\c\\tp\\plus_moins\\plusmoins.exe": Bad EXE format for
christophedlr@Arrakis:~/progs/cours/c/tp/plus_moins$

Comme j'ai Khexedit d'installé, j'ai regardé l'en-tête du fichier EXE, le voici le sur le screnshot:
http://img167.imageshack.us/my.php?image=capture2rs6.png
Comme ont le voit, la signature est un simple L alors que la signature des fichiers EXE sont sous l'une des 2 formes suivantes:
- Soit MZ et un autre ent-tête PE, le MZ c'est pour la partie DOS(généralement cela affiche le fameu message que ca fonctionne que sous Windows) et l'en-tête PE c'est pour windows.
- Soit c'est uniquement l'en-tête MZ pour les programmes fait pour DOS et non pour Windows.

Hors ici, nous avons aucun des en-tête spécifique au format .EXE de Microsoft.


Je voudrais donc savoir comment faire ? puisque le fichier EXE n'est aps un fichier EXE Windows/DOS.



Merci d'avance a ceux qui pourront m'aider.

Dernière modification par otheym (Le 15/07/2007, à 15:44)


Aelita, je te promet que l'ont pourra bientôt vivre tous les deux.
Je te le jure mon amour.

Hors ligne

#2 Le 15/07/2007, à 15:04

toto4455

Re : [Résolu] Impossible de faire de la cross-compilation

tu es sur de ne pas avoir un '-c' qui traine dans tes flags de compilation ?
ex qqchose comme ca :

i586-mingw32msvc-gcc -c plusmoins.c -o plusmoins.exe

dans ce cas enleve le "-c" pour le faire en une passe .

i586-mingw32msvc-gcc plusmoins.c -o plusmoins.exe

ou en 2 passes :

i586-mingw32msvc-gcc -c plusmoins.c -o plusmoins.o
i586-mingw32msvc-gcc -o plusmoins.exe plusmoins.o

#3 Le 15/07/2007, à 15:44

otheym

Re : [Résolu] Impossible de faire de la cross-compilation

Salut toto4455,
Effectivement je faisais avec le param -c.
J'avais aps réagit que en faisant cela(je viens d'y penser), cela me crée le fichier .o mais avec le nom que j'ai donné lol

Je viens de tester sans le -c et c'est bon ca marche, merci beaucoups.


Aelita, je te promet que l'ont pourra bientôt vivre tous les deux.
Je te le jure mon amour.

Hors ligne