2009-02-03 5 views
0

Après le chargement d'une application MFC existante dans Visual Studio 2008, je suis parti avec une erreur reliant:dépendance mystérieuse bibliothèque de chemin relatif

LINK : fatal error LNK1104: cannot open file '..\..\xpressmp\lib\xprm_rt.lib' 

Je l'ai regardé « partout », mais je ne peux pas savoir où la le chemin relatif est défini. Le fichier lib se trouve dans C: \ xpressmp \ lib, et j'ai ajouté ce répertoire sous Outils-Options-> Projets et Solutions-> VC++ Répertoires-> Fichiers de bibliothèque et Projet-> Propriétés-> Lieur-> Supplémentaire Répertoires de bibliothèques. J'ai également cherché tous les fichiers dans le projet en vain.

J'ai le fichier de bibliothèque (xprm_rt.lib) répertorié sous dépendances supplémentaires pour Debug et Release. J'ai aussi essayé d'ajouter le chemin, mais cela n'a pas aidé. Je ne trouve aucune #pragma comment-directives. A propos du LNK1104, le fichier n'existe clairement pas à l'emplacement recherché par l'éditeur de liens. Mais je ne vois pas pourquoi il cherche là (..\..\ ...) car je n'ai spécifié aucun chemin relatif.

Toute aide appréciée :-)

MISE À JOUR: Dans le projet fichier .vcproj, j'ai trouvé le code XML suivant:

<File RelativePath="..\..\XpressMP\lib\xprm_rt.lib"></File> 
<File RelativePath="..\..\XpressMP\lib\xprs.lib"></File> 

Après la suppression de ces lignes (où étaient-ils fixés?), Je était capable de lier avec succès. Merci pour votre aide, il semble que le chemin relatif de la bibliothèque était en effet ajouté "automatiquement" par VS.

Merci à vous deux, je pense que c'est Nick qui m'a mis sur la bonne voie.

Répondre

0

Il ressemble à une d'une possibilités de couple pour moi:

  • La bibliothèque est elle-même le réglage de la lib include_path via un commentaire #pragma (lib, ...) directive; recherchez les en-têtes de bibliothèque pour voir si c'est le cas
  • Vous avez un projet pour la bibliothèque incluse dans votre solution dont dépend votre projet principal, et le chemin relatif de la bibliothèque est ajouté automatiquement par VC; vérifier la page de propriétés de la ligne de commande pour le projet principal pour voir si c'est le cas

C'est ce que je peux penser à ce qui pourrait causer l'erreur; J'espère que cela aide.

2

Dans les propriétés du projet, regardez sous Propriétés de configuration -> Lieur -> Saisie -> Dépendances supplémentaires, pour chacune des configurations de votre projet (Debug, Release, etc.). Recherchez également les directives #pragma comment(lib, ...) dans le code.

Comme vous l'avez ajouté le dossier C:\xpressmp\lib sur le chemin de recherche de la bibliothèque dans VC++ répertoires, vérifier que seul le nom de fichier de bibliothèque est spécifiée sous Dépendances supplémentaires, et cela ne comprend pas le chemin (i.e., xprm_rt.lib, non ..\..\xpressmp\lib\xprm_rt.lib).

Aussi, avez-vous essayé chacune des solutions dans le LNK1104 error documentation?

0

Merci d'avoir répondu si rapidement!

J'ai le fichier de bibliothèque (xprm_rt.lib) répertorié sous Dépendances supplémentaires pour Debug et Release. J'ai aussi essayé d'ajouter le chemin, mais cela n'a pas aidé. Je ne peux pas trouver #pragma comment -directives. A propos du LNK1104, le fichier n'existe clairement pas à l'emplacement recherché par l'éditeur de liens. Mais je ne vois pas pourquoi il est à la recherche là-bas (..\..\...)

+0

Les réponses sont pour les réponses. Utilisez des commentaires ou modifiez la question pour répondre. – ephemient

+1

Merci, j'ai réalisé après avoir ajouté que ce n'est pas la façon de le faire ici. Pardon – Lars

Questions connexes