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

Code::Blocks Discussion :

Problème de linker sous répertoire


Sujet :

Code::Blocks

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut Problème de linker sous répertoire
    Je suis en train de créer une librairie. Cette librairie est codée en C++ et j'ai une interface en C. Pour des soucis de clarté, j'ai séparé mon code C dans un sous répertoire de celui où se trouve mes sources c++.

    En gros voici le schéma de mon arborescence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <répertoire de mon projet>
      \--<include> (tous mes headers C++)
            \-- c (tous mes headers en C)
      \--<src> (tous mes fichiers sources C++)
            \-- c (tous mes fichiers sources en C)
    La compilation se passe bien mais en arrivant à la phase du linker j'ai des erreurs indiquant que mes fonctions en C n'existe pas. Pourtant le .o est correctement généré dans le répertoire obj\Debug\src\c\ mais codeblock n'a pas l'air de s'en servir.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    J'ai revu ma façon de procéder. J'ai maintenant deux projets, un qui est une librairie statique contenant mes fonctions en C. L'autre projet est ma DLL à qui j'ai rajouté dans les options de linkage ma nouvelle librairie statique créée par le premier projet.

    Et pourtant j'ai toujours la même erreur "undefined reference to 'ma fonction'".

    J'ai rajouter les balises suivantes dans mon .h (je pense qu'elles servent uniquement dans le cas d'un programme en C++ qui exporterait des fonctions en C)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #ifdef __cplusplus
    extern "C" {
    #endif
     
    ...
     
    #ifdef __cplusplus
    }  /* End of the 'extern "C"' block */
    #endif
    Mais rien ne change j'ai toujours le même problème de fonctions indéfinies.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Bien j'ai finit par trouver, il y avait un seul problème à l'origine.

    Le premier était lié à l'interfacage entre le C et le C++; Il fallait bien le mot magique externe "C" qui permet d'exporter ou de lire des fonctions au format C. Lorsqu'on compile un fichier c++, le compilateur rajoute une certaine chaine de caractères avant le nom de la fonction et avec le compilateur C c'est une autre chaine de caractères. Le mot magique externe "C" permet de mettre tout le monde d'accord en utilisant le format du C.

    Pourquoi ca ne marchait pas en ayant mis le mot magique dans le header de ma librairie? C'est de ma faute, je n'avais pas supprimer l'ancien header dans mon arborescence et le compilateur allait toujours chercher l'ancien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SEAM] problème de navigation & sous répertoires
    Par pClement dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 30/05/2008, 10h37
  2. Réponses: 1
    Dernier message: 06/08/2007, 15h28
  3. Problème d'include et sous-répertoires
    Par didou038 dans le forum Langage
    Réponses: 6
    Dernier message: 22/12/2006, 10h46
  4. Réponses: 7
    Dernier message: 12/09/2006, 14h22
  5. fichier .bat : problèmes avec des sous-répertoires
    Par aymron dans le forum Windows
    Réponses: 4
    Dernier message: 23/06/2005, 09h33

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