IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Compilation pour préparation tournoi mondial ..


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Compilation pour préparation tournoi mondial ..
    Bonjour à tous,

    En vue de la prochaine coupe du monde d'othello, j'aurais besoin pour m'y préparer de compiler ZEBRA (un programme d'othello)
    Je suis actuellement sous Vector Linux et j'essaye de compiler ce programme à partir des sources qu'on peut télécharger ici :
    http://radagast.se/othello/zebra.tar.gz
    Le début de la compilation se fait normalement en faisant "make all" comme indiqué par le README jusqu'au moment où j'ai un message d'erreur qui empêche la compilation de se terminer : /

    La voici :

    getcoeff.o: In function `pattern_evaluation':
    getcoeff.c:(.text+0xa00): undefined reference to `_board'
    getcoeff.c:(.text+0xa06): undefined reference to `_board'
    getcoeff.c:(.text+0xa0c): undefined reference to `_board'
    getcoeff.c:(.text+0xa12): undefined reference to `_board'
    getcoeff.c:(.text+0xa1b): undefined reference to `_board'
    getcoeff.o:getcoeff.c:(.text+0xa24): more undefined references to `_board' follow
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [zebra] Erreur 1
    vector:/~/ZEBRA
    Aurore:$


    Est-ce bien la variable "_board" qui n'est pas déclarée dans le fichier getcoeff.c? Si oui quelqu'un sait ce qu'il faut rajouter et/ou modifier pour que je puisse compiler totalement ce programme?

    Merci d'avance pour ceux ou celles qui pourront/voudront m'aider à compiler et donc à ce que je puisse m'y préparer ...

    Mes meilleures salutations,

    Aurore

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par Aurore.boreale Voir le message
    Est-ce bien la variable "_board" qui n'est pas déclarée dans le fichier getcoeff.c? Si oui quelqu'un sait ce qu'il faut rajouter et/ou modifier pour que je puisse compiler totalement ce programme?
    Hello,

    Où as-tu récupéré ce programme ? On dirait qu'il s'agit d'une version de développement ...

    À première vue, son programme embarque un accélérateur en assembleur qui peut être inhibé pour utiliser un code C par défaut. Ouvre le Makefile. À la ligne 126, tu trouveras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DEFS =          -DINCLUDE_BOOKTOOL -DTEXT_BASED -DUSE_PENTIUM_ASM -DZLIB_STATIC
    Efface ce -DUSE_PENTIUM_ASM, fais make clean pour tout effacer et recompile normalement. S'il ne trouve pas « -lz », va en ligne 113, sur LDFLAGS, et retire -static.

    Dans le fichier README associé, ils font état de cette compil en assembleur, et également de fichiers « coeffs2.bin » et « book.bin » qu'il faut tirer de WZebra, qui semble être la version Windows du même programme. Après une brève recherche, on le trouve ici :

    http://radagast.se/othello/download.html

    Bon courage.

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Citation Envoyé par Aurore.boreale Voir le message
    Est-ce bien la variable "_board" qui n'est pas déclarée dans le fichier getcoeff.c?
    Non, l'erreur signifie que getcoeff.c référence une variable (ou une fonction) "board", mais qu'aucun des fichiers objets avec lesquels tu essaies de linker getcoeff.o n'externalise cette variable.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Rebonjour à vous,
    Tout d'abord merci pour le temps que vous accordez à mon problème.
    Ce programme provient du site http://radagast.se/othello/. L'auteur a diffusé les sources en 2006 car il en avait marre de s'en occuper apparement... Moi aussi je m'étais demandé s'il n'avait pas diffusé par erreur une version en developpement mais en fait je pense que c'est volontaire afin que seulement les plus motivés arrivent à obtenir ce programme compilé sur linux...

    Je viens à l'instant par miracle reussi à compiler le programme en remplaçant toutes les lignes de "_board" par "display_board" du fichier getcoeff.c par contre je n'ai pas d'interface graphique lorsque je lance /.zebra donc uniquement en console :/ . Visiblement ce n'était pas la manipulation à faire on dirait. Je vais donc remettre le fichier comme il était à l'origine et suivre le conseil de Obsidian je reviens ce soir pour vous tenir au courant je dois aller en cours ^^

    Non, l'erreur signifie que getcoeff.c référence une variable (ou une fonction) "board", mais qu'aucun des fichiers objets avec lesquels tu essaies de linker getcoeff.o n'externalise cette variable.
    donc que dois-je faire?^^

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon je viens de tester tes conseils Obsidian j'arrive à compiler mais ce que je ne comprend pas c'est pourquoi je suis toujours en mode console. Les versions binaires qu'on peut télécharger (Wzebra.exe pour windows et Lzebra pour linux) ont une interface graphique... J'ai testé sur 2 dossiers différents la compilation (ta premiere modification l'un et sur lautre en supprimant loption "-static" de la ligné 113) mais dans les 2 cas ça compile mais je me retrouve en mode console lorsque je lance l'executable ./zebra
    Une idée?
    En tout cas merci beaucoup pour tout ça déjà !!

    Aurore

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Je viens à l'instant par miracle reussi à compiler le programme en remplaçant toutes les lignes de "_board" par "display_board" du fichier getcoeff.c
    Grosse erreur ! Apparement « _board » est censé se référer au tableau board[] déclaré dans le code source en C un peu plus haut. Par contre, display_board est un pointeur de fonction. Segfault en vue.

    donc que dois-je faire?^^
    Sur le site, on peut s'apercevoir que l'auteur a fait une version compilée pour Linux, baptisée LZebra 3.3. Il faut lancer ./bookinst pour créer book.bin, puis lancer ./lzebra.

    Il est possible que le programme t'ennuie parce qu'il cherche une version trop ancienne de la libpng. Si c'est le cas, tu peux faire dans ton répertoire de dépôt un simple lien symbolique pointant vers la bibliothèque la plus récente et portant le nom que lzebra recherche.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    le book.bin c'est bon je l'ai installé et le coeff2.bin je l'ai rajouté aussi. Ca marche et ça lis bien ces 2 fichiers pour la base de donné du programme. Mon seul soucis maintenant c'est que j'aimerais avoir l'interface graphique comme sur les 2 programmes binaires disponibles... Quand je dis interface graphique je veux dire par là qu'actuellement j'ai juste le plateau visible en mode console avec des "x" pour représenter la couleur "noir" et "o" pour les blancs ... c'est vraiment primitif et je ne peux jouer à la souris ainsi etc.... : / peux-tu m'aider là dessus?

    PS : oui j'ai retelechargé les sources vu que j'ai vite compris que c'était une erreur ma modification du fichier getcoeff.c mais là je ne vois pas ce que je peux faire? quels type de commande dois-je faire pour les librairies graphiques?
    Pour le programme Lzebra ce n'est pas son interface graphique qui mennuie j'ai aucun soucis avec Lzebra jai les interfaces graphiques à jour sans soucis c'est juste que la version de Lzebra directement disponible en binaire sur le site est trop ancien et possède beaucoup moins de fonctions disponible et de bugs présent qu'on ne trouve pas sur la derniere version 4.2.4. Bref si je m'acharne vraiment sur ces sources c'est que c'est vraiment la version qu'il me faut compiler et lancer graphiquement pour que je puisse m'y préparer :-(

Discussions similaires

  1. Cross-compil pour MAC
    Par Ulmo dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 29/09/2006, 19h49
  2. logiciel de compilation pour VB
    Par oceane751 dans le forum Discussions diverses
    Réponses: 3
    Dernier message: 31/12/2005, 00h54
  3. Directives de compilation pour g++
    Par Jfrancois57 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 09/11/2005, 11h23
  4. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  5. Compiler pour msdos(5-6)
    Par jalfonsi dans le forum Choisir un environnement de développement
    Réponses: 3
    Dernier message: 05/04/2004, 22h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo