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 :

Erreur de Compilation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut Erreur de Compilation
    Bonjour,

    J'ai des sources d'un programme de jeu de réflexion (Othello) nommé "zebra" qu'on peut récupérer sous la forme "zebra.tar.gz" à l'adresse suivante :

    http://radagast.se/othello/zebra.tar.gz

    Je suis sous Snow leopard avec processeur intel Core 2 Duo et je n'arrive pas à compiler malgré la modification du Makefile( j'ai juste supprimé "-DUSE_PENTIUM_ASM" de la ligne 126 et remplacé -mtune=pentium2 par -mtune=generic comme conseillé par certains)
    En effet lorsque je fais "make all" comme indiqué par le README j'obtiens ce message d'erreur:

    game.c:20:17: error: dir.h: No such file or directory
    game.c: In function ‘global_setup’:
    game.c:145: warning: implicit declaration of function ‘getcwd’
    make: *** [game.o] Error 1
    macbook-de-9ae6:zebra ae6$


    Voilà je suis perdu si quelqu'un pouvait m'aider ça serait cool surtout que ce programme compilé m'aiderait à me préparer aux prochains championnat mondial d'othello si vous connaissez ...
    Merci d'avance ^^

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par l9ae6l Voir le message
    game.c:20:17: error: dir.h: No such file or directory
    game.c: In function ‘global_setup’:
    game.c:145: warning: implicit declaration of function ‘getcwd’
    make: *** [game.o] Error 1
    macbook-de-9ae6:zebra ae6$


    Voilà je suis perdu
    Si tu traduis les messages en français, ça devient presque limpide :

    Citation Envoyé par l9ae6l Voir le message
    game.c: ligne 20: 17: erreur : dir.h: Fichier inexistant (ou introuvable).

    [et, par conséquent :]

    game.c: dans la fonction ‘global_setup’ :
    game.c:145: attention: déclaration implicite de la fonction ‘getcwd’
    make: *** [game.o] Erreur 1
    macbook-de-9ae6:zebra ae6$

    Autrement dit, il ne trouve pas le fichier « dir.h », et le fichier dir.h doit probablement avoir un rapport avec la suite puisque que l'on utilise soit-disant une fonction sans l'avoir déclarée explicitement auparavant. Surtout quand on sait que « getcwd » signifie « Get Current Working Directory ».

    C'est une fonction standard Unix qui se trouve, donc, dans « unistd.h », comme le précise la man page de la fonction getcwd().

    Essaie de remplacer dir.h par unistd.h. Si cela provoque d'autres erreurs, remet dir.h en plus de unistd.h.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Merci beaucoup Obsidian pour ton aide ton astuce fait que je suis à 98% de la compilation c'est presque réussi !. Il manque encore un truc mais je ne trouve pas je suis désolé pour ma nullité...
    En remplaçant "dir.h" par "unistd.h" j'obtiens ceci :
    timer.c:45:21: error: windows.h: No such file or directory
    timer.c: In function ‘reset_real_timer’:
    timer.c:110: warning: implicit declaration of function ‘GetTickCount’
    timer.c: In function ‘get_real_timer’:
    timer.c:160: error: ‘CLK_TCK’ undeclared (first use in this function)
    timer.c:160: error: (Each undeclared identifier is reported only once
    timer.c:160: error: for each function it appears in.)
    make: *** [timer.o] Error 1
    macbook-de-9ae6:zebra ae6$


    Et en rajoutant "unistd.h" en plus de "dir.h" je compile à 50% seulement et j'obtiens ceci :
    game.c:20:17: error: dir.h: No such file or directory
    make: *** [game.o] Error 1
    macbook-de-9ae6:zebra ae6$


    Autrement dit il faut je suppose rajouter encore un #include dans timer.h qui possède entre autre la bibliothèque windows.h mais je ne connais pas

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par l9ae6l Voir le message
    Autrement dit il faut je suppose rajouter encore un #include dans timer.h qui possède entre autre la bibliothèque windows.h mais je ne connais pas
    « windows.h » (et GetTickCount()) sont des éléments du monde MS Windows. C'est normal qu'il ne les trouve pas si tu ne compiles pas sous Windows.

    Cependant, zebra est fait pour compiler sur plusieurs plateformes, UNIX comprise. Par contre, à l'époque où le logiciel a été écrit, l'auteur n'a pas pris en compte MacOS X, qui devrait être compatible.

    Remet « dir.h » à sa place, ouvre porting.h et, entre le #define et le #endif, essaie d'ajouter soit « #define __CYGWIN__ », soit « #define __linux__ », en respectant le nombre de « _ ».

    Il s'agit ni d'un système ni de l'autre, mais ce sont des symboles que le programme connaît. Il est possible qu'il retombe sur ses pieds avec cela.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Merci encore Obsidian pour l'aide.

    J'ai essayé "#define __linux__" et maintenant j'ai le message suivant:

    :zebra.c:97: error: ‘wait’ redeclared as different kind of symbol
    /usr/include/sys/wait.h:255: error: previous declaration of ‘wait’ was here
    make: *** [zebra.o] Error 1
    macbook-de-9ae6:zebra ae6$


    Ca progresse ça progresse on dirait ^^

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par l9ae6l Voir le message
    Ca progresse ça progresse on dirait ^^
    Ça progresse, mais ce n'est pas le même système. Donc, dans tous les cas, il y aura des adaptions à faire. Regarde sur le site, il y a plusieurs versions de Zebra pour des plateformes différentes. Peut-être que l'une d'entre elles fonctionnera mieux.

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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