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 :

Créer une lib dynamique avec des lib statiques


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut Créer une lib dynamique avec des lib statiques
    Bonjour,

    J'ai une librairie dynamique .so à créer à partir de fichiers objet .o et de librairies statiques .a

    Petit souci, lorsqu'il essaye de créer la librairie so, j'ai des erreurs de link avec des undefined reference sur les fonctions contenues dans les librairies statiques.

    Je ne sais pas comment remédier à ce problème...
    Un peu d'aide serait la bienvenue svp

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 408
    Points : 23 803
    Points
    23 803
    Par défaut
    Montre-nous comment tu t'y prends.

    Donne-nous la ligne de commande exacte que tu saisis et dis-nous de quelle bibliothèque il s'agit.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Alors, c'est bon, j'ai réussi à créer la librairie avec la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $(CC) $(COBJ_LIST) $(PMI_LDFLAGS) -fPIC -shared -o ${DESTDIR}${SCTK_PREFIX}/lib/libmpc.so $SCTK_LDFLAGS
    où :
    • CC = gcc
    • COBJ_LIST = une liste de fichier .o
    • PMI_LDFLAGS = une liste de librairies statiques .a
    • SCTK_LDFLAGS = une suite de -DMACHIN_CHOSE


    Donc comme je disais, la librairie dynamique est très bien créée. Mais lorsque j'utilise les bin créés (qui utilisent cette lib), j'ai de nouveau les undefined reference.

    Et pour finir j'essaye de linker HYDRA (développé par avec MPICH2) à l'API MPC de mon client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # mpc_cc MPC_Tests/parallel/MPC_Message_Passing/hello_world.c -o hl
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDU_sock_write'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDU_parse_hostfile'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDU_process_mfile_token'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYD_pmcd_pmip_kill_localprocs'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDT_bsci_query_proxy_id'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYD_pmcd_pmip_get_params'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDT_bsci_init'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDT_bsci_query_jobid'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `cleanup_params'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYD_dbg_prefix'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `init_params'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYD_pmcd_pmi_find_proxy'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDU_sock_read'
    /usr/local/mpc-2.1_rc2-hydra/lib/libmpc.so: undefined reference to `HYDT_bsci_finalize'
    collect2: ld a retourné 1 code d'état d'exécution

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Points : 130
    Points
    130
    Par défaut mettre à jour le cache ld.so.cache
    Bonjour,
    essaie de mettre à jour le cache par ldconfig après avoir compilé ta librairie partagée.
    ldconfig (ici)

Discussions similaires

  1. [XL-2007] Créer une liste déroulante avec des titres sur Excel
    Par Super Fanja dans le forum Conception
    Réponses: 3
    Dernier message: 22/09/2012, 17h35
  2. Créer une librairie dynamique avec NetBeans C/C++
    Par Grammato dans le forum NetBeans
    Réponses: 2
    Dernier message: 12/04/2011, 12h38
  3. Réponses: 4
    Dernier message: 21/03/2008, 18h40
  4. Réponses: 11
    Dernier message: 18/10/2007, 13h49
  5. [JTable] Créer une JTable vide avec des noms de colonnes.
    Par Cyborg289 dans le forum Composants
    Réponses: 2
    Dernier message: 27/09/2005, 16h54

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