Compilation séparée d'une liste objet indépandant

[Résolu]
Signaler
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008
-
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008
-
Bonjour,

Voila je me pose une question sur la compilation je suis sur un projet.
Je voudrais rélisé une série d'objet dont certain serais interdepandant. Il faudrais qu'isl puissent etre utilisé de façon séparée. L'ojectif est que chaque objet du système appel de lui même les makefile dont il a besoin ce de façon automatique.
Cette parte la j'ai réussie.
La question que je me mose c'est au mpment du linkage de mon programme principal tout les lien util seront-il réalisé on pas?

Merci d'avance de votre aide.

Ps j'ai essayé d'etre claire mais je ne sais pas si ça l'ai vraiment n'esité pas à me demandé plus d'info si nécéssaire.

6 réponses

Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

Salut,

La réponse est oui, mais là ou tu vas avoir petit souci p-e c'est si tu link plusieurs .o qui ont memes fonctions déclarées, ( genre deux main ) là ca va pas aller..

=
Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

RE

L'edition des liens est le processus qui a lieu apres la phase de compilations. Elle prend en entree tous les .o et les lie en un executable (que je vais appeler ici .exe pour que ca soit plus clair)
Pourquoi relier ? car il faut faire correspondre, relier, les fonctions entre elles, par exemple, si dans le fichier affichage.o tu appelles une fonction de calcul.o
il faut les mettre en relation. Donc en gros l'edition des liens consiste a reunir en un seul fichier toutes les fonctions qui sont utilisees.
Et si deux fonctions ont le meme nom, ca pose un probleme de conflits, car l'editeur de lien "ld" ne sait pas quelle fonction doit etre liee.
 L'editeur de liens lie aussi les fonctions mises a disposition par les bibliotheques, comme printf par exemple.
Y'a une petite difference pour les bibliotheques partagees, dans ce cas seulement la reference de la fonction est sauvegardee, et le lien se fera a l'execution.

=
Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

RE

L'ordre a pas beaucoup d'importance, mais oui, il commence par la fonction main puis voit les dependances a partir de la. La fonction main est aussi particuliere car c'est elle qui est lancee par la fonction _init, mais a part ca elle est comme les autres fonctions.

=
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008

Ok merci de ta réponce. Sait tu comment le linkeur desside de faire ces liens? Comment il sait les quelles il doit réaliser? car pour moi c'est une grande intérogation.

Encore merci
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008

Ok merci et je supose qu'il commence par réaliser ce du main .
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008

OK merci beaucoup de ton aide et peut etre a une prochaine fois j'espère pouvoire t'aider a mon tour.