2 votes

Lien C++ vers un autre projet dans visual studio 2010

J'ai un .cpp et un header dans un autre projet que j'aimerais lier. J'ai ajouté l'en-tête et placé le fichier .lib dans le Linker/ Input/ Additional Dependencies mais j'obtiens un external non résolu. D'après ce que j'ai lu, cela pourrait être dû au fait que la lib fait partie d'un projet dll. Tout ce que je veux faire, c'est lier l'obj de cette classe, mais il ne semble pas vouloir me permettre de le faire. Je peux lier un autre fichier lib dans le même répertoire, ce n'est donc pas un problème de chemin.

Je pourrais probablement exporter la classe dans le cadre d'une DLL, mais je ne veux pas m'inquiéter des fuites de mémoire car je devrais passer un pointeur sur l'objet, alors que si j'établis un lien direct, je n'ai pas à m'en préoccuper du tout.

Quelle est la meilleure façon de diagnostiquer si je peux faire un lien vers le fichier lib.

Y a-t-il une raison particulière pour laquelle VS2010 ne me permet pas d'aller directement au fichier obj ? Cela semble être l'option la plus facile.

Merci, James

1voto

SpacedMonkey Points 1970

Vous pouvez créer une nouvelle configuration dans laquelle le projet vers lequel vous établissez un lien est une bibliothèque statique au lieu d'une DLL.

Ajoutez le projet en tant que dépendance de votre nouveau projet et modifiez les paramètres du gestionnaire de configuration afin qu'il utilise la configuration de la bibliothèque statique au lieu de la configuration de la DLL.

0voto

Lyubomir Vasilev Points 2047

Si vous souhaitez établir un lien direct avec le fichier .obj de la classe, vous devez ajouter le fichier .cpp de la classe à votre projet. Cette solution, aussi simple qu'elle puisse paraître, n'est pas une solution à votre problème, mais seulement une solution de contournement. Je ne vois pas comment résoudre le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X