Bonjour à toutes et tous,

J'essaie de reprendre la main sur une chaine de compilation qui est l'empilement historique de moults développeurs ....
J'ai quasi fini et il me reste un morceau incompréhensible et je viens chercher vos lumières

Le code est en C et C++ (sic...)
Il est compilé et linké avec VS2013 (re-sic...)

Au linkage, il y a plusieurs modules :
- des lib dynamiques .dll compilées avec VS2013
- des lib static .lib compilées avec VS2013
- une lib static ligcc.lib dont l'origine est inconnue présente dans le répertoires des objets à linker et dont l'utilité est inconnue
- 2 lib static, libgif.lib et libutil.lib qui ont été compilée avec mingw64 via un make.

Mais les 2 lib, libgif.lib et libutil.lib, s’appellent à la fin de leur compilation libgif.a et libutil.a et sont renommées en libgif.lib et libutil.lib.
VS2013 accepte sans broncher les 2 fichiers.

Mes interrogations sont donc les suivantes :
- est-ce que MinGW64 sort des .a mais qui sont en fait des vraies .lib et que ce n'est vraiment qu'un problème d'extension à changer
- ou bien les .a sont-ils vraiment des .a et cela impliquerait le besoin de libgcc.lib pour pouvoir s'en servir (et dans ce cas, comment ça marche ??)
- si libgcc.lib ne sert pas au point précédent, quel est l'utilité de libgcc.lib dans la génération d'un exécutable avec la chaine de compilation VS2013 ? De mes recherches, je suis tombés sur ce lien :
https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html

qui dit :
" GCC generates calls to routines in this library automatically, whenever it needs to perform some operation that is too complicated to emit inline code for. "
Sauf que je ne compile pas avec GCC .... et que le programme n'a a priori jamais été compilé avec GCC.

Je suis donc un peu dans le brouillard.
Ce que j'aimerais (et que j'ai commencé à faire), c'est de compiler les libgif.lib et libutil.lib avec VS2013 (fait) pour les linker avec VS2013 (à faire).
Mais c'est le rôle de libgcc.lib qui me mets des doutes dans ce qui se passe.
Et comme je ne peux pas utiliser dependency walker pour analyser les lib static, ma solution, après vous, sera de sauter dans l'inconnu et de voir si ça explose ou pas en dégageant les .a/lib et libgcc.lib et en utilisant des .lib générées avec VS2013 ^_^'

Merci d'avance pour vos lumières