J'ai un petit soucis de link dans un projet qui contient un .exe et plusieurs .lib dans une solution Visual Studio 2013.
L'exe se nomme exec.library qui dépend de plusieurs lib static(dont intuition.library et graphics.library entre autres).
intuition.library appelle des fonctions dans graphics.library et bien évidement (pour corser le tout), exec.library appelle des fonctions de graphics.library et d'intuition.library.
Le schéma suivant représente (à défaut de mieux) les dépendances :
J'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 +------+ +-------+ exec +-----+ | +------+ | | | | | +----v------+ +-----v----+ | intuition +-------> graphics | +-----------+ +----------+
Les fonctions ScreenToFront() et OpenScreen() font partis de intuition.library. Quand je compile intuition.library et graphics.library, tout est ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1>intuition.library.lib(OpenScreen.obj) : error LNK2019: symbole externe non résolu _ScreenToFront référencé dans la fonction _OpenScreen 1>D:\dev\MimicOS\SysCore\Debug\kernel.exe : fatal error LNK1120: 1 externes non résolus
En revanche, quand je compile exec.library (qui fait appelle à ces fameuses fonctions), j'ai l'erreur... Ce qui est déroutant, c'est que ces deux fonctions sont issues de la même lib static...
De ce que j'ai pu comprendre, le problème se trouve dans le fait que intuition.libray (un .lib) et graphics.library (qui est un .lib aussi) s'appellent mutuellement.
Dans mes recherches infructeuses sur le net, je suis tombé sur différents articles qui pourraient peut être être en relation :
- http://blogs.msdn.com/b/vcblog/archi...eferences.aspx
Pour celles et ceux qui ont le courage de télécharger le projet (500Ko), le tout est disponible ici : https://mimicos.codeplex.com/SourceControl/latest ou en pièce jointe.
Quelqu'un aurait une petite idée ?
Partager