Symbole externe non résolu d'une bibliothèque statique dans un projet, pas les autres. (C++)
J'ai une bibliothèque statique qui compile fine (appelons cela Un), et il est dépendante d'une autre bibliothèque statique (permet de l'appeler B).
J'ai aussi le projet X, qui utilise la bibliothèque A. Donc dans X-je inclure B, et ensuite, en-dessous, comprennent Une, deux dans stdafx.h. Je ne ce à l'aide de #pragma commentaires. Projet X compile bien.
Cependant, je puis ont projet Y, qui utilise également la bibliothèque A. Mais, même si le projet Y est stdafx.h est IDENTIQUE à X, Y ne compile pas, donnant "symbole externe non résolu" erreurs. Ce qui est encore plus étrange, c'est que les erreurs se référer à une fonction dans la bibliothèque de B à partir d'une fonction référencé dans la bibliothèque de A.
Personne ne sait pourquoi ce qui se passe? Désolé si je n'étais pas clair; il y a donc beaucoup de code, je ne sais pas par où commencer, y compris ici. Merci!
OriginalL'auteur Raiden616 | 2014-02-10
Vous devez vous connecter pour publier un commentaire.
Je vais supposer que vous utilisez MSVS basé sur la stdafx.h nom d'en-tête. Lors de l'inclusion de bibliothèques statiques, non seulement vous devez inclure les fichiers d'en-tête nécessaires, mais vous avez un lien avec une bibliothèque statique fichier, c'est à dire une .fichier lib. Ma conjecture est que le projet X a accès à ça .fichier lib, bien que le projet n'Y est pas.
Peut-être par le biais des propriétés->propriétés->Références et puis "ajouter une nouvelle référence", pour souligner à la fois vos bibliothèques.
De votre projet est Y, ainsi que le Projet X, A, B dans la même solution? L'ajout de ces projets à la même solution que pourrait Y aider. J'ai seulement fait cela disposer d'une solution contenant toutes les bibliothèques statiques je veux inclure. Dans mon cas, les chemins ont été automatiquement (et correctement) défini par MSVS. Bien que, probablement, nécessite l'ajout de la les projets de la solution. (ce serait en utilisant la méthode que j'ai mentionné ci-dessus "propriétés->propriétés->Références" etc.).
Si c'est un .lib le fichier à partir de l'extérieur de votre projet, vous devez l'inclure dans "propriétés->Propriétés de Configuration->Linker->Input->dépendances Supplémentaires", et assurez-vous que son chemin est dans "propriétés->Propriétés de Configuration->Linker->Général>d'autres Répertoires de la Bibliothèque"
Espère que ça aide
Trouvé comment modifier le chemin d'accès complet, mais pas de chance j'ai peur.
OriginalL'auteur cgeroux
Aujourd'hui, j'ai eu le problème de la non résolus des symboles au sein d'une lib et je n'avais aucune idée de pourquoi.
Et la solution a été d'inclure tous mes *.c et *.h les fichiers de mon projet. (Récemment, j'ai simplement copié dans le dossier du projet, mais n'a pas les ajouter au projet)
Le projet est compilé sans erreur avant...
Je ne suis pas sûr que c'est votre problème, mais depuis c'est la première chose que j'ai trouvé lorsque j'ai googlé je l'ai poster ici de toute façon.
Lors de l'ajout à l'objectif principal du projet est une mauvaise idée, il est possible que le projet référencé n'a pas pu ajouter la totalité de ses prestations du rpc/h de fichiers (surtout si la croix-plate-forme et négligés sur windows). S'assurer que tous les fichiers de bibliothèque dans la bibliothèque de projet vcxproj
OriginalL'auteur Sebastian Ax