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

Autres éditeurs Discussion :

[GCC] compilation de plusieurs fichier.o


Sujet :

Autres éditeurs

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut [GCC] compilation de plusieurs fichier.o
    Bonjour,

    Pour un projet je cherche à compilé/linké plusieurs fichier .o ensemble pour en faire un executable.
    J'utilise la commande suivante arm-linux-gcc -o test main.o lib.o lib2.o -L./lib -L./lib/lib2

    En sachant que le fichiers lib.o se trouve dans ./lib et le fichier lib2.o dans ./lib/lib2

    Malheureusement gcc ne trouve pas les deux fichiers lib.o et lib2.o ...

    Je ne comprend pas pour quoi ni comment corriger ce problème ?!?!

    Merci par avance pour votre aide.

    Jobe

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Si tes fichiers lib.o et lib2.o sont bien dans les répertoires annoncés, cela devrait normalement fonctionner...

    Thierry

  3. #3
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Nein er general !

    Tu dois impérativement mettre les chemins de recherche -L... avant les librairies elles mêmes.

    De plus ces chemins de recherches ne sont pris en comptes qu'avec l'option -l et pas quand elles sont précisées de toute pièce.

    Ce n'est pas fini, normalement une librairie à comme extension ".a" ou ".so", mais jamais ".o".
    En plus donner "lib.o" comme nom à une librairie c'est foncer dans le mur . Renomme les en : "libx.a" et "liby.a".

    Au final, cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arm-linux-gcc -L./lib -L./lib/lib2 -o test main.o -lx -ly

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    On est bien d'accord que les noms ne sont pas parlant... c'était juste un exmple simplifié de mon problème...

    Ce n'est pas vraiment des librairies il s'agit juste d'un programme découpé en plusieurs fichier c.

    Je n'est pas bien compris la modification avec les -lx et -ly ?!?!

    Merci !

  5. #5
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Bon si tes fichier lib...o ne sont pas de librairies mais des fichiers compilés, l'option -L... n'aura aucun effet.

    Pour préciser dans quel répertoire sont ces fichiers, la seule solution est de l'écrire explicitement comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arm-linux-gcc -o test main.o obj/lib.o obj/lib2.o

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Au risque de paraitre con : Fondamentalement il n'y a pas vraiment de différence entre un librairie statique et un fichier objet ?!?!

    Je vois pas bien comment spécifier lors de la compilation des fichiers secondaires (ceux qui n'ont pas de main) qu'il s'agit de librairie statique plutôt que de simplement crée des .o

    Merci

Discussions similaires

  1. Problème de compilation de plusieurs fichiers
    Par mattttt01 dans le forum Débuter
    Réponses: 11
    Dernier message: 04/07/2011, 16h20
  2. Compilation de plusieurs fichiers en même temps
    Par oliviernouhi dans le forum Langage
    Réponses: 8
    Dernier message: 02/03/2011, 14h47
  3. [cmake] Forcer un ordre pour la compilation de plusieurs fichiers
    Par systemofaxav dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 18/02/2010, 17h17
  4. compilation et plusieurs fichiers .class $1 $2 ?
    Par daed dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 20h53
  5. [linux][gcc] Comment travaille t-on avec plusieurs fichiers?
    Par kaygee dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/04/2004, 17h48

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