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

Linux Discussion :

Linker un .o avec des archives pour faire un exe


Sujet :

Linux

  1. #1
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut Linker un .o avec des archives pour faire un exe
    Bonjour, voici la situation.

    Jai compiler plusieurs fichiers sources avec gcc, qui ont donner des fichiers objets et ils sont placés dans le dossier /exe/

    Jai regrouper ces fichiers en faisait des archives (avec la commande ar)
    En bout de ligne je me retrouve avec 10 fichiers archive (.a) au total.


    Jai ensuite mon main.cpp, je le compile et obtient par exemple main.o, jaimerais linker ce .o avec tout les fichiers .a que jai produit precedemment dans le but de faire un executable, comment faire??

    Merci!

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 860
    Points : 4 819
    Points
    4 819
    Par défaut
    Bonjour

    Un bon makefile est la solution : http://gl.developpez.com/tutoriel/outil/makefile/

    @++

  3. #3
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Merci pour le lien, jai essayer de faire un makefile mais sans trop de succes

    Par exemple, jai les .a suivant:
    mnt/data/magic/exe/lib_brep_magic.a
    mnt/data/magic/exe/lib_carte_magic.a
    mnt/data/magic/exe/lib_diamesh_magic.a
    mnt/data/magic/exe/lib_mailleur_magic.a
    mnt/data/magic/exe/lib_materiau_magic.a
    mnt/data/magic/exe/lib_outil_magic.a
    mnt/data/magic/exe/lib_parseur_magic.a
    mnt/data/magic/exe/lib_sat_magic.a
    mnt/data/magic/exe/lib_solveur_magic.a
    mnt/data/magic/exe/lib_step_magic.a


    Chaque .a contient de 10 a 40 fichiers objets (.o)


    donc par exemple pour mon main le makefile serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    main: lib_brep_magic.a lib_carte_magic.a lib_diamesh_magic.a lib_mailleur_magic.a lib_materiau_magic.a lib_outil_magic.a lib_parseur_magic.a lib_sat_magic.a lib_solveur_magic.a lib_step_magic.a
    Sauf la dans le FAQ il mette une commande GCC sauf que cette commande elle correspond a quoi?? faudrait-il que je fasse exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -o main mes-10-fichiers-archive

    ?? Je suis un peu confu

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    La documentation de gcc, bien qu'importante, est interessante a lire. Je te conseille de la consulter.
    Pour repondre a ta question, le lien avec des bibliotheque se fait ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc toto.c -ltiti -L/path -o toto
    Ici, gcc va construire l'executable 'toto' en compilant le fichier source toto.c (ce qui va produire le fichier objet toto.o) et en liant le fichier objet au contenant de la bibliotheque situee a /path/libtiti.a [en fait, gcc ira d'abord chercher la version dynamique (.so) puis la version statique (.a)]

    Donc, pour toi, cela devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc main.c -l_brep_magic -l_carte_magic -l_diamesh_magic <...> -l_step_magic -L/mnt/data/magic/exe -o main

  5. #5
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Jai reussi merci

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/07/2006, 11h12
  2. probleme avec des archive en c++
    Par armoni dans le forum C++
    Réponses: 7
    Dernier message: 30/06/2006, 09h43
  3. Compilation Java avec GCJ pour faire un exe. Pourquoi ?
    Par Claude URBAN dans le forum Général Java
    Réponses: 11
    Dernier message: 17/06/2006, 21h00
  4. Problèmes avec des nombres... que faire ?
    Par sducos81 dans le forum C++
    Réponses: 6
    Dernier message: 21/07/2005, 13h46
  5. Réponses: 6
    Dernier message: 23/05/2005, 15h38

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