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 :

creation de libraire dynamique


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut creation de libraire dynamique
    bonsoir à tous,

    je fait appel a vous car j'aurai besoin d'aide concernant la realisation de libraire dynamique sous linux et surtout sur la methode de linkage et compilation, comment créer un fichier .so et le lier a mon executable, un exemple de Makefile m'aiderai bien.

    Merci à vous et bonne soirée

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Que ça soit sur Windows ou Linux la création de librairie varie peu.

    Je ne pourrais pas aider pour un exemple de makefile j'utilise code:block.

    après il faut juste indiquer a ton compilateur juste que tu créer une lib dynamique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    gcc -c -fPIC name -o name.o
    gcc -shared -fPIC name.o -o libname.so
    apres pour lier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -o nom_du_programme   -lnom_de_la_librairie   nom_du_fichier_objet
    Apres sur linux par info il ne regarde pas la lib au répertoire courant comme windows mais ou se trouve tous les lib du système.

    regarde la commande 'ldconfig' pour mettre a jour la lecture des librairie

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    hmm merci bien mais en fait la ou je bloque vraiment c'est a l'élaboration du makefile j'ai surement pas poster au bon endroit c'est de ma faute.
    En effet j'ai plusieurs makefile a creer, un pour compiler mes fichiers sources, un autre pour justement compiler les librairies dynamique et au final il faut que je fasse lien entre tout ca ... C'est un sacré bordel, apparement il existe des outils pour faciliter l'écriture de makefile je me suis donc tourné vers automake et heu .... c'est censé simplifié la tache ou la compliquer d'avantage ? J'imagine que je suis bon a rien ...

    En esperent que certains d'entre vous puissent m'aguiller.

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Normalement le sujet devrai être dans Linux , m'enfin je pense que j'ai donné pas mal élément de réponse qui te permet de faire un Makefile (c'est juste un ensemble de règle a connaître).

    Makefile pour la lib :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    lib : libdynamique libstatic
     
    libdynamique : main
    	gcc -shared -fPIC main.o -o libname.so
     
    libstatic : main
    	ar -q libname.a main.o
     
    main : 
    	gcc -c main.c -o main.o
    Apres pour ton programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Programme : main fonctions
            gcc -o programme  -libname main.o fonctions.o
     
    main : main.c fonctions.c
            gcc -c main.c -o main.o
     
    fonctions : fonctions.c
            gcc -c fonctions.c -o fonctions.o
    (c'est un exemple et pas sura 100% je fais très peu de makefile , si qql peut confirmer).

Discussions similaires

  1. [Conception] creation de fiche dynamique a partir d'une base de données
    Par badnane2 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2006, 16h50
  2. Problème avec les libraires dynamiques
    Par Harzoglups dans le forum C
    Réponses: 3
    Dernier message: 17/01/2006, 15h21
  3. Creation de librairies dynamique... Problème !
    Par Franck.H dans le forum Linux
    Réponses: 12
    Dernier message: 24/06/2005, 11h18
  4. creation fenetres (TForm) dynamiquement
    Par Erzak dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/12/2004, 20h25
  5. Creation de fiche dynamique
    Par Mouss26 dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/07/2002, 07h56

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