PDA

Afficher la version complète : [Réglé] Pb de compilation de binutils



wooy
04/11/2007, 23h26
EDIT: Désolé je me suis trompé de section, si un modérateur peut déplacer le sujet -> http://www.alionet.org/index.php?showforum=20

Bonjour à tous

Alors je vous explique le truc, j'essaye de mettre en place un environnement pour générer des exécutables Linux et Windows sur la suse 10.3.

J'ai trouvé un tutorial qui explique la chose -> Tuto cross compli (http://www.dumbbell.fr/howto/win32-cross-compilation.fr.html) mais j'ai un soucis lors de la compilation du binutils.

Voici le genre d'erreur:

deffilep.o: In function `main':
/home/wooy/Dling/binutils-build/ld/deffilep.c:1: multiple definition of `main'
ldmain.o:/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/ldmain.c:1
85: first defined here
ei386pe.o: In function `gld_i386pe_unrecognized_file':
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/emultempl/pe.em:138
2: undefined reference to `def_file_parse'
pe-dll.o: In function `pe_implied_import_dll':
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:2744: undefined reference to `def_get_module'
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:2772: undefined reference to `def_file_add_import'
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:2729: undefined reference to `def_file_empty'
pe-dll.o: In function `process_def_file':
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:596: undefined reference to `def_file_add_directive'
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:653: undefined reference to `def_file_add_export'
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:703: undefined reference to `def_file_add_export'
/home/wooy/Dling/binutils-build/ld/../../binutils-2.18.50/ld/pe-dll.c:583: undefined reference to `def_file_empty'
collect2: ld returned 1 exit status
make[4]: *** [ld-new] Erreur 1
make[4]: quittant le répertoire « /home/wooy/Dling/binutils-build/ld »
make[3]: *** [all-recursive] Erreur 1
make[3]: quittant le répertoire « /home/wooy/Dling/binutils-build/ld »
make[2]: *** [all] Erreur 2
make[2]: quittant le répertoire « /home/wooy/Dling/binutils-build/ld »
make[1]: *** [all-ld] Erreur 2
make[1]: quittant le répertoire « /home/wooy/Dling/binutils-build »
make: *** [all] Erreur 2

En fait je voulais savoir si quelqu'un sait déjà confronter à ce problème, car je n'arrive pas à régler ça.

Est-ce un problème de version avec gcc ( je suis en 4.2.1 ) ?

Agemen
04/11/2007, 23h52
Tu veux compiler le fichier depuis une source, c'est ça? t'as pas de .rpm? xD Sur le site de cross-compilation, ils semblent indiquer que de tels paquets existent. Ca résoudra pas ton problème au niveau de la compilation, mais ça augmentera peut être tes chances d'installer les softs, Yast résolvant les problèmes de dépendances (yast ou autre chose, hein, moi je connais que yast^^).
Je pense pas que ce soit un problème de compilateur... Je pense que c'est rare, un problème de compilateur... En fait, je vois deux problèmes (attention, mon niveau en C/C++ est très très bas^^) : il semble qu'il y'ait un conflit de noms (s'il appelle deux fois "main", ça va pas^^. C'est comme si tu étais prof et que tu appelais un Alexis, alors qu'il y'en a au moins deux. Personne ne sait à qui tu parles, y'a un flottement. Ben le flottement, c'est ton erreur de compilation.) Mais ça, ce serait plutôt dans la source.... enfin, je pense, je suis pas un pro^^
Pour le reste... le compilateur semble (enfin, c'est ce que je vois, mais j'ai des problèmes de vue^^) appeler des fonctions non-définies. Autrement dit, il te manquerait des bibliothèques...
Je vérifierais bien que les rpm existent... mais mon wifi marche mal sous linux, désolé.
PS t'as une chance que le rpm, s'il existe, soit sur le dvd d'installation... regarde ;)

Pumpkin
05/11/2007, 10h05
Hello !

Le paquet binutils est dispo dans YAST.

Je n'ai pas trouvé trace de binaire de mingw ni win32api. Juste des rpm des sources.

Agemen
05/11/2007, 14h10
ca résout le problème, nan, si il a les rpm? Unt 'tite instal avec Yast et le tour est joué, je pense... T'as des liens? On trouve ça dans des dépôts?

wooy
05/11/2007, 21h07
En fait j'ai besoin de recompiler binutils/gcc/ en spéficiant lors du configure une autre cible que l'actuel. Le but c'est d'avoir 2 environnement de dev bien disctinct. un gcc linux et un gcc-mingw.

Donc rpm ou non cela ne m'arrange pas, faut compiler les sources avec des options, sauf si je me trompe royalement.

Je suis tombé sur ce site qui donne un script pour installer toutes les sources necessaires -> Script (http://www.libsdl.org/extras/win32/cross/README.txt)
Sauf que ca ne marche toujours pas chez moi.

UnnamedBoy
22/07/2008, 10h55
Bonjour,
Désolé, je remonte un vieux topic.
Je suis actuellement en stage, ou, après un développement sous linux, il nous est demandé de compiler un executable windows.
Je me suis donc tourné vers la cross-compilation :)

Cependant, j'ai le même problème que Wooy (j'ai d'ailleurs suivi, avant de trouver ce topic, le même tuto). A savoir que lors de la compilation des binutils avec la cible "mingw32", je tombe sur des erreurs (je les reposte pas ici, ce sont exactement les mêmes erreurs que wooy). J'ai egalement suivi le lien que wooy a donné dans son dernier post, mais ça ne marche pas non plus. Ca met les mêmes erreurs.

(Je tiens à preciser que bien qu'étant sur le forum dédié à openSUSE (que j'utilise dans mon cadre personnel), je tourne sous Ubuntu (imposé pour le stage). Cela peut paraitre bizarre de poster sur un forum openSUSE, mais en faisant une recherche sur mon ami google, c'est ce lien qui m'a paru le plus pertinent).

Voila, je m'en remet donc à vous : est-ce que quelqu'un aurait une idée de comment résoudre le problème?


EDIT : Suivant les conseils reçus sur un autre forum, j'ai réinstallé les paquets bison, byacc et expect et maintenant la compilation marche. J'ai d'autres soucis mais là c'est une autre histoire ;)