Je suis en train de créer une solution dans Visual C++ où j'ai un projet frontal qui référence un projet DLL que j'ai créé. Dans le projet DLL, je lie à une bibliothèque statique (que je n'ai pas écrite) qui a des objets statiques et des définitions. Tout se construit bien mais j'ai des problèmes de liaison.Utilisation d'une DLL qui lie à une bibliothèque statique
J'ai quelques questions. Tout d'abord, je ne devrais obtenir que des symboles non résolus pour les objets que je référence dans le front-end qui ne sont pas exportés, n'est-ce pas? Je veux que la DLL soit la seule interface à la bibliothèque statique et ne fasse directement référence à aucune partie de celle-ci dans le frontal, et pourtant j'obtiens un certain nombre de symboles non résolus de cette bibliothèque. Les symboles semblent #include et au moins certains ne sont pas directement liés par le projet DLL. Je soupçonne que cela a à voir avec les déclarations statiques dans la bibliothèque statique, mais comment puis-je faire face à ces déclarations?
Certaines des erreurs de symboles non résolus:
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: __thiscall SharkException::SharkException(char const *,int,char const *)" ([email protected]@[email protected]@Z)
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: static class Bernoulli Rng::coinToss" ([email protected]@@[email protected]@A)
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall ChromosomeT<bool>::operator<(class Chromosome const &)const " ([email protected][email protected]@[email protected]@@Z)
Quel est le point dans l'utilisation d'une DLL en tant qu'interface à une bibliothèque statique? S'il vous plaît, expliquez! – TonyK
La DLL n'est pas seulement une interface avec la bibliothèque statique, elle possède sa propre fonctionnalité mais elle utilise la bibliothèque statique. – Nigel
duplication possible de [code d'initialisation de variable statique jamais appelé] (http://stackoverflow.com/questions/1897184/static-variable-initialisation-code-never-gets-called) –