142 votes

Pourquoi l'erreur fatale "LNK1104 : cannot open file ' C:\Program.obj '" se produit lorsque je compile un projet C++ dans Visual Studio ?

J'ai créé un nouveau projet C++ dans Visual Studio 2008. Aucun code n'a encore été écrit ; seuls les paramètres du projet ont été modifiés.

Lorsque je compile le projet, je reçois l'erreur fatale suivante :

fatal error LNK1104 : cannot open file ' C:\Program.obj '

172voto

Josh Sklare Points 1829

Ce problème particulier est causé par la spécification d'une dépendance à un fichier lib qui avait des espaces dans son chemin. Le chemin doit être entouré de guillemets pour que le projet se compile correctement.

Sur le Propriétés de la configuration -> Linker -> Input des propriétés du projet, il existe un onglet Dépendances supplémentaires propriété. Ce problème a été résolu en changeant cette propriété de :

C:\Program Fichiers \sofware sdk \lib\library.lib

A :

" C:\Program Fichiers \sofware sdk \lib\library.lib "

23 votes

Mon Dieu, vous venez de faire passer deux jours de chasse aux bugs pour un seul de 30 secondes :)

11 votes

J'ai eu le même problème. Si votre Linker est correct mais que votre répertoire lib est mal défini, la même erreur peut se produire. Essayez de regarder dans Propriétés de configuration -> Répertoires VC++ -> Répertoires de bibliothèque pour voir si vous avez configuré la bibliothèque correctement. Parfois, le dossier lib est composé d'un dossier x86 et d'un dossier x64. Vous devez le définir sur l'un d'eux (en fonction de votre compilateur) plutôt que sur le dossier contenant les deux.

1 votes

N'oubliez pas de mettre un point-virgule après "C:\Program Files\sofware sdk\lib\library.lib" . L'absence d'un ; entraînera également une compilation incorrecte du projet.

82voto

Carol Points 1636

Cela peut se produire si le fichier est toujours en cours d'exécution.

:-1 : erreur : LNK1104 : ne peut pas ouvrir le fichier 'debug\****.exe'.

7 votes

C'était aussi mon problème !

2 votes

C'est dû au fait que MS Security Essentials verrouille le fichier.

2 votes

Yep, j'ai fermé la fenêtre de la console précédente et soudainement la librairie pouvait être lue.

17voto

Daniel Neel Points 105

Le problème a disparu pour moi après avoir fermé et rouvert Visual Studio. Je ne sais pas exactement pourquoi le problème s'est produit, mais cela peut valoir la peine d'essayer.

Cela s'est passé sur VS 2013 Ultimate, Windows 8.1.

7 votes

Ah, Microsoft... Notre premier essai devrait toujours être de fermer et de rouvrir (ou d'éteindre et de rallumer) - plusieurs bugs mystérieux disparaissent quand on fait ça...

3 votes

Je me sens tellement honteux que cette solution puisse résoudre mon problème. Maintenant, je ne peux plus sortir pour rencontrer mes amis et ma famille.

2 votes

Vous avez eu le même problème que Carol.

10voto

Assaf Levy Points 1302

Vérifiez également que vous ne l'avez pas activé : Propriétés de configuration -> C/C++ -> Préprocesseur -> Prétraiter vers un fichier .

0 votes

Dans mon cas, c'était également le cas, mais que dois-je faire si je souhaite activer ce drapeau (afin de visualiser le fichier Prepossessed) ?

2 votes

Vous avez quelques solutions de contournement ici : Comment produire du code prétraité ET le compiler (Visual Studio) et ici : La compilation d'un projet (VS 2008) avec l'argument /p (prétraitement vers un fichier) ne compile pas. . Mais il s'agit essentiellement d'une option du compilateur qui permet de faire l'un ou l'autre mais pas les deux.

9voto

pbertoni Points 50

Mon problème était un manque .lib extension, j'étais juste en train de faire un lien contre mylib et VS a décidé de chercher mylib.obj .

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