Bonjour
que signifie l'édition des liens incrémentielles ?
merci
Bonjour
que signifie l'édition des liens incrémentielles ?
merci
sous visual au moment de réaliser l'éditions des liens cette dernière phase pour être ou non incrémentielles
De plus je m’interrogeais sur la notion d'unité de compilation en C++, c'est comme en C un .cpp = une unité de compilation= un module
Salut,
Tu le sais surement, le rôle de l'éditeur de liens est de regrouper l'ensemble des fichiers objets dans un seul exécutable ou une seule dll.
Le fait est qu'il y a souvent de nombreux fichiers qui ne sont pas modifiés entre deux compilations, et donc entre deux éditions de liens.
On peut donc estimer que le résultat de l'édition de liens précédente sera "en bonne partie" identique à celui de l'édition de liens actuelle, et que l'on peut donc envisager de prendre comme base ce résultat précédent et de travailler sur les différences qu'il peut y avoir avec le résultat que l'on devrait obtenir maintenant.
Lorsque tu effectue une édition de liens incrémentielle, elle est effectuée en suivant ce principe.
L'idée à la base de cette réflexion est qu'il devrait simplement prendre moins de temps de déterminer les différences et de les appliquer que de refaire tout le boulot depuis le début, et ce sera sans doute vrai tant que tu te contentera de modifications minimes dans un nombre de fonctions peu important ou de rajouter de nouveaux fichiers d'implémentation.
Par contre, si tu modifie en profondeur un grand nombre de fonctions dans un grand nombre de fichiers, il peut arriver que le travail nécessaire pour déterminer les différences et les appliquer prenne au final plus de temps que ce qu'aurait demandé le fait de tout refaire depuis le début.
Cependant, à partir du moment où l'on en arrive déjà à devoir éditer les liens, on peut se dire que les modifications apportées à l'existant seront, effectivement, relativement minimes vu qu'il s'agira, la plupart du temps, de corriger une erreur de logique (ce qui n'empêche absolument pas de rajouter de nouvelles unités de compilation)
Les fichiers générés en utilisant l'édition de liens incrémentielle sont tout à fait compatible avec ceux qui ont été générés de manière non incrémentielle. Cependant leur taille est généralement un peu plus importante car ils sont déjà préparés pour l'édition de lien suivante, par exemple en "laissant un peu d'espace" pour agrandir les fonctions au besoin ou en fournissant certaines informations qui seraient nécessaires pour le réadressage des fonctions.
L'édition de liens incrémentielle est activée de manière automatique sous visual studio, mais tu peux la désactiver à l'aide de l'option INCREMENTIAL:NO
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Partager