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 :

comment créer une librairie c++ et l'utiliser en c/c++


Sujet :

C++

  1. #1
    Membre régulier Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Points : 82
    Points
    82
    Par défaut comment créer une librairie c++ et l'utiliser en c/c++
    j'aimerais savoir comment créer une librairie (libtest.a) en c++ l'utiliser en c++ et en c sous linux
    passionné de développement

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Quel est le problème ? Produire le .a ? Ou bien linker du code C avec une biblio C++ ?

    (Seul bémol des libs C++, le compilo qui compile/linke le programme final doit être le même que celui qui a produit la lib. C'est particulièrement vrai sous Windows (où il y a beaucoup de compilos différents), mais aussi parfois d'une version d'un compilo à la suivante.)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre régulier Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Points : 82
    Points
    82
    Par défaut mon problème est l'utilisation de la lib
    En fait mon pb c'est effectivement que je n'arrive pas à lier le (libtest.a) à l'ade de ranlib; lorsque je tape "ranlib libtest.a" linux ne produit pas d'erreur mais lorsque je veut utiliser la librairie, linux me signale que la librairie "test" n'a pas d'index et qe je dois utiliser ranlib pour le créer: je tourne en rond
    passionné de développement

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est quoi ta ligne de commande pour l'édition des liens ?

  5. #5
    Membre régulier Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Points : 82
    Points
    82
    Par défaut je compile comme ceci et ca ne marche pas
    En fait voici toute ma démarche:

    je suis dans le répertoire /home/
    je crée le rep mylib et je me positionne dedans: cd mylib
    je créé mylibtest.h suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     #ifndef MYLIBTEST.H
     #def MYLIBTEST.H
      void helloworld();
      #endif
    je crée mylibtest.cpp suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     #include"mylibtest.h"
     #include<iostream>
     void helloworld() {
      std::cout<<"hello world\n";
     }
    je le compile avec
    g++ -c mylibtest.cpp

    je crée le fichier librairie avec
    ar cr libtest.a mylibtest.o

    je lie les objets à l'intérieur avec
    ranlib libtest.a

    puis je crée le fichier exec.cpp qui utilisera cette lib

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include"mylibtest.h"
     int main()
      { helloworld(); 
         return 0;
       }
    lorsque je le compile avec
    g++ exec.cpp -L. -ltest exec_cpp

    j'obtient le message selon lequel la librairie test n'a pas d'index et que je dois utiliser la commande ranlib pour en créer 1.
    je le fais et j'ai toujours le même message
    je tourne en rond
    passionné de développement

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/07/2015, 17h40
  2. Utilisation du langage C, comment créer une DLL
    Par Jay_2008 dans le forum LabVIEW
    Réponses: 9
    Dernier message: 05/06/2008, 15h05
  3. Réponses: 2
    Dernier message: 01/02/2008, 16h00
  4. Réponses: 7
    Dernier message: 10/01/2007, 18h41
  5. Comment créer une base utilisable sur PC sans ACCESS
    Par lesalloues dans le forum Runtime
    Réponses: 4
    Dernier message: 22/08/2006, 14h52

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