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 :

Problèmes avec des librairies (.a et .so)


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problèmes avec des librairies (.a et .so)
    Bonjour,
    Je travaille avec le compilateur gcc et j'ai une bibliothéque libx.so dont la description des fonctions ne m'a pas été donnée. J'ai le respectif fichier x.h, à partir duquel je peux savoir comment appeler ses fonctions. Par exemple, on suppose qu'il y a dedans la fonction:

    int fonc (int a, int b);

    Et qu'elle me rend la valeur a + b.

    Mon but c'est de créer une bibliothèque intérmediaire (midd.so ou midd.a) capable d'appeler cette fonction dedans une fonction de même nom:

    //fichier midd.h
    #include <x.h>
    int fonc(int a, int b);

    //fichier midd.c
    #include <midd.h>
    int fonc(int a, int b){//fonction fonc de même nom
    int c;
    c= fonc(a,b); //fonction fonc décrite par le fichier libx.so
    c++;
    return (c);
    }

    et dans le fichier de l'application:
    #include</home/koeppl/midd.h>
    #include<stdio.h>

    int main(){
    int a;
    printf("result %d",fonc(1,3));
    a= getchar();

    return 0;

    }

    J'arrive bien à compiler et à linker quand je change le nom de la fonction fonc placée en midd.h, midd.c et en main. Exemple, si je change son nom de fonc pour fonc1, ça fait une fonction fonc1 appélée depuis main qui appele la fonction fonc, décrite en x.h/ x.so. Cela marche correctement. J'utilise les commandes décrites en http://www.trustonme.net/didactels/154.html .

    Cependant si j'emploi le même nom pour la fonction fonc, j'ai un bug dans le linkage ( quand je fais gcc -o appli appli.c midd.a ou gcc -o appli appli.c midd.so, puisque j'ai déjà essayé de créer midd.a et midd.so).

    Question 1 : Est-il possible de faire des bibliothèques linkées à d'autres bibliothèques? Comment? (sachant que souvent j'ai le problème de "erreur de segmentation" quand je fais ça...)

    Question 2 : Si oui, je pourrais appeler une fonction qui dedans appele une autre fonction de même nom, placée dans une autre bibliothèque? Comment?

    Merci beaucoup, j'ai passé pas mal de temps au dessus de ça...
    André

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Il n'y a rien en C prévu pour les bibliothèque dynamique. Il faut te rabattre sur ce qui est défini par ta plateforme. Si c'est au format elf, je te conseille de regarder la doc de l'editeur de liens de Sun même si tu n'es pas sous Solaris, elle est bien faite.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Quelques problèmes dans la compilation
    Bonjour,
    En fait j'ai trouvé la réponse sur les sites web http://www.linux-france.org/article/memo/node113.html et http://ilay.org/yann/articles/dlfcn/ , qui m'ont aidé à comprendre mon problème.

    Merci,
    André

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/11/2009, 06h46
  2. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 11h17
  3. Réponses: 5
    Dernier message: 19/08/2004, 11h11
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 16h26

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