Je suis assez nouveau dans le flux de construction C++, et je pense à passer à l'utilisation de liens partiels pour mes bibliothèques au lieu de créer des archives ar
. J'espère réduire le temps de liaison dans une étape de compilation finale inévitable que j'ai, et je pense que la liaison partielle de certaines bibliothèques une fois pourrait me faire gagner du temps à tout relier dans cette dernière étape.g ++ lien partiel au lieu d'archives?
Est-ce que ce que je décris est possible? Je pense qu'il devrait être quelque chose le long des lignes ld -Ur -o mylib.o [components]
. Y a-t-il des considérations de construction importantes que je ne prends pas en compte?
Donc, fondamentalement, le ballonnement exécutable peut être attendu comme un inconvénient de la liaison plus rapide, non? – cdleary
Seulement si vous y avez des objets qui ne seraient pas autrement liés. Si votre bibliothèque fait partie de votre projet, il est tout à fait possible que vous l'utilisiez entièrement, et que vous n'ayez pas de problème supplémentaire. Le système de compilation du noyau Linux utilise ld -r beaucoup, mais ne lui transmet que les fichiers .o qu'il sait utiliser. – CesarB
Il est possible d'utiliser '-ffunction-sections' et' -fdata-sections' avec '-Wl, - gc-sections' pour éliminer le code inutilisé au niveau de la fonction; voir http://gcc.gnu.org/ml/gcc-help/2003-08/msg00128.html – bdonlan