Je suis d'accord.
Pour les bibliothèques statiques, c'est "lib
test.a", test étant le nom de la bibliothèque.
Quand à la bibliothèque d'importation, c'est plutôt : "lib
test.dll.a", toujours avec "test comme nom.
D'ailleurs, dans "C:\Msys64\ucrt64\lib" sous Windows, je ne vois que des bibliothèques se terminant par :

".o", je suppose des objets.

".a" pour les bibliothèques statiques.

"ddl.a" pour les bibliothèques d'importations (il y en a très peu).
Mais pas de ".lib". En fait, je ne connais pas ce suffixe.
On trouve cela, peut-être, sous MSVC, mais ce ne sont pas des bibliothèques statiques.
Pourquoi ? Car elles sont accompagnés d'une ".dll".
Je suis d'accord.
Le manifest en question ("test.dll.a") ne contient aucune fonctions. Elles sont toutes dans "test.dll".
Par contre, si tu ajoutes une nouvelle fonction, tu devras refaire une édition des liens du programme qui utilise ce manifest.
alors que si tu viens à simplement modifier une fonction déjà existante, tu n'es pas obligé de refaire une édition des liens.
Je n'avais pas pensé au fait que ces bibliothèques peuvent être, comme tu dis, commerciale.
D'où l'intérêt de les externaliser et non de les inclures dans un programme.
Surtout si cette bibliothèque est utilisée à plusieurs reprises dans différents programmes.
Désolé, mais je ne sais pas de quoi tu parles.
C'est un usage que je ne connais pas. Choisir sa bibliothèque au moment du traitement ??? Bizarre comme façon de faire.
En tout cas, je n'en ai pas l'usage.
@ Foetus : une "shared library" sous linux est l'équivalent d'une "dynamic library" sous windows.
Sous linux, c'est fichier se terminant par ".so", alors que sous windows, c'est ".dll".
Je pense qu'au niveau vocabulaire, quand on parle de bibliothèque d'importation, on fait référence à ".dll.a".
Et non à la bibliothèque dynamique, qui est la ".dll". Sous linux, ce la se nomme la bibliothèque partagée (shared library).
L'équivalent des fonctions windows sous linux sont :

"loadlibrary()" : "dlopen()".

"GetProcAddress()" : "dlsym()".

"FreeLibrary()" : "dlclose()".

"GetLastError()" : "dlerror()".
Sinon, c'est le même la mécanisme entre windows et linux.
C'est ce que j'ai compris.
Partager