Comment recompiler tout ça ....

Fermé
BananeChaude Messages postés 4 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 18 décembre 2014 - Modifié par BananeChaude le 16/12/2014 à 13:22
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 18 déc. 2014 à 10:30
Bonjour à tous :)

J'ai un p'tit soucis, j'ai créer ce programme durant mes étude et je ne me souviens plus de comment j'ai fais pour recompiler et surtout exécuter ce programme ...

Toutes les sources sont dispo ici => http://s000.tinyupload.com/index.php?file_id=31316351731215628576

Rien de bien inquiétant, c'est une simulation de jeu de la vie (des lapins qui mangent des fleurs en essayant d'échapper aux renards)

si quelqu'un parviens à recréer un .exe, pourrait-il me le faire parvenir ?
ou m'indiquer, ETAPE PAR ETAPE, comment se configurer un environnement pour compiler et exécuter ce code :)

Merci par avance pour votre aide.

2 réponses

[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
18 déc. 2014 à 10:14
Salut BananeChaude,

Ton fichier compressé contient déjà deux exécutables compilés pour Linux, pour une machine 32 bits, comme l'indique l'utilitaire
file
:

$ file prog
prog: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
$ file prog1
prog1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

Pour exécuter ces programmes, il te faut un système Linux 32 bits doté des bibliothèques dynamiques suivantes révélées par
ldd
:

$ ldd prog
linux-gate.so.1 => (0xb77e4000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb77a9000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb7644000)
/lib/ld-linux.so.2 (0xb77e5000)
$ ldd prog1
linux-gate.so.1 => (0xb7709000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb76ce000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb7569000)
/lib/ld-linux.so.2 (0xb770a000)

Les permissions d'exécution ont cependant été retirées sur ces fichiers "prog" et "prog1", pour restaurer les permissions, il faut faire :

$ chmod +x prog

ensuite, tu peux les exécuter sous Linux :

$ ./prog

Je ne l'ai pas fait sur mon système.

S'agissant de ton code, ton Makefile ne fonctionne pas avec GNU Make.

Une compilation utilisant les options indiquées dans ce Makefile avec gcc donne :

$ gcc -Wall -D_REENTRANT -lpthread *.c -o jeu
init.c: In function `main':
init.c:96:19: error: `nb_animaux' undeclared (first use in this function)
init.c:96:19: note: each undeclared identifier is reported only once for each function it appears in
prog1.c: In function `main':
prog1.c:128:3: warning: implicit declaration of function `sleep' [-Wimplicit-function-declaration]
prog.c:243:1: warning: return type defaults to `int' [-Wreturn-type]
prog.c: In function `main':
prog.c:282:3: warning: implicit declaration of function `sleep' [-Wimplicit-function-declaration]
prog.c:249:22: warning: unused variable `lapinou' [-Wunused-variable]
prog.c:245:8: warning: unused variable `coor' [-Wunused-variable]
prog.c: In function `renard':
prog.c:211:1: warning: control reaches end of non-void function [-Wreturn-type]
prog.c: In function `lapin':
prog.c:151:1: warning: control reaches end of non-void function [-Wreturn-type]
threads_total_tas_struct.c:24:1: warning: return type defaults to `int' [-Wreturn-type]
threads_total_tas_struct.c: In function `main':
threads_total_tas_struct.c:29:19: warning: unused variable `v3' [-Wunused-variable]
threads_total_tas_struct.c:29:14: warning: unused variable `v2' [-Wunused-variable]
threads_total_tas_struct.c:29:9: warning: unused variable `v1' [-Wunused-variable]
threads_total_tas_struct.c: In function `somme':
threads_total_tas_struct.c:22:1: warning: control reaches end of non-void function [-Wreturn-type]

La compilation échoue car "nb_animaux" n'est pas déclarée.

Un grep sur les fichiers du projet semble indiquer que cette variable n'est déclarée nulle part.

En l'état, les sources ne sont pas compilables en raison de cette erreur.

Il y a aussi de nombreux warnings.


Dal
0
BananeChaude Messages postés 4 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 18 décembre 2014
18 déc. 2014 à 10:25
Bonjour,

Merci pour toute ces informations. Le code n'est certainement pas à jour car c'est un projet que j'ai rendu durant mes études et il se lançait c'est sur (sinon je n'aurais pas eu 17/20 ^^)

Tant pis, je verrais si je trouve le temps un jour de le restaurer ^^"

Merci beaucoup !
0
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
18 déc. 2014 à 10:30
Corriger l'erreur signalée pour le recompiler ne semble pas surhumain, si c'est la seule erreur.

Autrement, comme indiqué, tu as déjà des exécutables produits (pour le système sous lequel ils ont été compilés).


Dal
0