Prenons le cas de la librairie libprojet
qui définit l'interface IParametres
et une seconde libeurocode
. libeurocode
implémente IParametres
avec les normes EC et libprojet
est liée à libeurocode
pour l'utiliser de façon native (sans chargement dynamique).
L'astuce consiste à compiler libeurocode
en premier (choix arbitraire) mais sans demander à le lier (via l'éditeur de lien) avec la librairie libprojet
. La compilation (.dll
) va échouer mais l'édition des liens (.lib
) va réussir.
Ensuite, il reste à compiler normalement libprojet
en le liant à libeurocode
et enfin à recompiler libeurocode
en le liant cette fois avec libprojet
. Ainsi les 2 libraires sont bien générées.
Afin d'avoir à éviter de modifier le projet à chaque compilation l'une librairie, il est conseillé de créer 3 projets pour générer les 2 librairies. Le premier pour libeurocode
sans la liaison avec libprojet
, le deuxième pour libprojet
avec la liaison avec libeurocode
et enfin le troisième qui sera parfaitement identique au premier sauf que la liaison avec libprojet
sera définie.
Se produit quand on essaie de lier un programme compilé avec l'option Debug et une Dll avec l'option Release (ou inversement).