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

Résolu
thetoto52
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008
- 25 mai 2007 à 10:27
thetoto52
Messages postés
87
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
11 novembre 2008
- 29 mai 2007 à 16:00
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

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

26 mai 2007 à 10:36
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..

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

29 mai 2007 à 11:13
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.

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

29 mai 2007 à 15:19
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.

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

29 mai 2007 à 07:58
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

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

29 mai 2007 à 16:00
OK merci beaucoup de ton aide et peut etre a une prochaine fois j'espère pouvoire t'aider a mon tour.
0