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

Bibliothèques Discussion :

Erreur lors d'un make une inclusion non trouvée


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut Erreur lors d'un make une inclusion non trouvée
    Bonjour,
    J'ai très peu fait de C dans ma vie et il y a pas mal d'années en plus !

    J'essaie d'installer Wview sur un serveur existant sous Mandrake 10.2 (oui je sais, c'est pas jeune mais je ne peux pas changer ça pour le moment ! )

    Lors du make, j'obtiens l'erreur suivante :
    In file included from ../htmlgenerator/htmlStates.c:35:
    ./glchart.h:28:16: gd.h: No such file or directory
    gd.h ne se trouve nulle part sur le disque.
    Il existe libgd.so.2.0.0 dans /usr/lib.

    Ceci se passe juste après l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -DHAVE_CONFIG_H -I. -I.. -I../common -I/usr/local/include -D_GNU_SOURCE -DWV_CONFIG_DIR=\"/usr/local/etc/wview\" -DWV_RUN_DIR=\"/usr/local/var/wview\" -DBUILD_HTMLGEND    -g -O2 -MT htmlStates.o -MD -MP -MF .deps/htmlStates.Tpo -c -o htmlStates.o `test -f '../htmlgenerator/htmlStates.c' || echo './'`../htmlgenerator/htmlStates.c
    Est-ce que la partie -I. -I.. -I../common -I/usr/local/include indique bien à GCC où chercher les fichiers à inclure ?

    Est-ce que, si j'ajoute un lien symbolique vers libgd.so.2.0.0 dans /usr/local/include, il va retrouver ses petits ?

    J'ai aussi cherché à supprimer le package libgd2 pour le remplacer par libgd2-devel mais l'installeur de paquets de Mandrake refuse d'installer le devel (ce package ne peut être sélectionné).

    Bref, je suis coincé.

    Une idée géniale à me soumettre ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    J'ai aussi cherché à supprimer le package libgd2 pour le remplacer par libgd2-devel mais l'installeur de paquets de Mandrake refuse d'installer le devel (ce package ne peut être sélectionné).
    Il faudrait pourtant que tu l'installes. Seul le package de développement peut te fournir le fichier gd.h qu'il te manque. libgd2-devel est complémentaire à libgd2. Il ne faut donc pas faire de remplacement mais l'ajouter.

    Est-ce que la partie -I. -I.. -I../common -I/usr/local/include indique bien à GCC où chercher les fichiers à inclure ?
    OUI

    Est-ce que, si j'ajoute un lien symbolique vers libgd.so.2.0.0 dans /usr/local/include, il va retrouver ses petits ?
    Pour ce qui est de libgd.so, ce sera à voir quant tu commenceras à linker... mais cette librairie doit rester dans /usr/local/lib et n'a rien à faire dans /usr/local/include.

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Merci de t'intéresser à mon problème.
    Citation Envoyé par CinéPhil
    Il existe libgd.so.2.0.0 dans /usr/lib.
    Citation Envoyé par aoyou
    cette librairie doit rester dans /usr/local/lib

    C'est installé comme ça par défaut, je n'ai rien fait de spécial pour ça. C'est grave docteur ?

    Citation Envoyé par CinéPhil
    Est-ce que, si j'ajoute un lien symbolique vers libgd.so.2.0.0 dans /usr/local/include, il va retrouver ses petits ?
    Ma question signifiait :
    Le fichier qui me manque (gd.h) peut-il se trouver dans la librairie libgd.so et si je fais un lien symbolique vers cette librairie, le make va t-il pouvoir trouver gd.h tout seul ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    C'est installé comme ça par défaut, je n'ai rien fait de spécial pour ça. C'est grave docteur ?
    Erreur de ma part. Qu'il soit dans /usr/lib ou /usr/local/lib, laisse le où il est. Mais il n'a rien à faire dans /usr/include ou /usr/local/include.

    Le fichier qui me manque (gd.h) peut-il se trouver dans la librairie libgd.so et si je fais un lien symbolique vers cette librairie, le make va t-il pouvoir trouver gd.h tout seul ?
    Absolument pas.

    Pour faire simple, en C ou en C++, le nom et la signature (on dit aussi prototype) de chaque fonction sont décrits dans des en-têtes (les .h). Les implémentations (ou corps) de ces fonctions sont faites dans des sources (généralement .c ou .cpp) qui une fois compilées et rassemblées forment ce qu'on appelle une bibliothèque logicielle. Sous Linux, il s'agit des .so ou des .a.

    Le fichier gd.h est donc un fichier supplémentaire qui se trouve dans le RPM de développement, en l'occurrence probablement libgd2-devel. Les en-têtes ne sont nécessaires que pour développer. C'est pour cela qu'on les trouve dans un RPM à part. Quand à libgd2.so, il est probablement fourni par le RPM libgd2.

    On trouve les bibliothèques dans des répertoires en lib/ et les en-têtes dans des répertoires en include/.

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Merci pour ces explications claires.

    Comme on est coincés, on va voir si on peut installer ce logiciel sur un autre serveur.

    Au cas où j'ai d'autres problèmes du même genre, je laisse le sujet ouvert.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 12
    Dernier message: 23/05/2007, 21h40
  2. Erreur lors du lancement d'une application
    Par mouloudéen dans le forum Access
    Réponses: 1
    Dernier message: 09/10/2006, 02h57
  3. [TestStand] Erreur lors d'un accès à une Base de données
    Par capblans dans le forum Autres langages
    Réponses: 1
    Dernier message: 20/07/2005, 10h29
  4. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16

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