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 '

2voto

Alfred Meier Points 17

Dans mon cas, il s'agissait de la longueur du chemin (y compris le nom du fichier).

..\..\..\..\..\..\..\SWX\Binary\VS2008\Output\Win32\Debug\boost_unit_test_framework-vc90-mt-gd-1_57.lib;

quant à la version, le chemin était (cela a fonctionné correctement) :

..\..\..\..\..\..\..\SWX\Binary\VS2008\Output\Win32\Release\boost_unit_test_framework-vc90-mt-1_57.lib;

\==> un caractère plus court.

  1. J'ai également vérifié ceci en renommant le fichier lib (en utilisant un nom plus court) et en changeant ceci dans le fichier d'installation.

Linker -> entrée -> dépendances additionnelles

  1. J'ai également vérifié cela en ajoutant un chemin absolu au lieu d'un chemin relatif, car tous ces ".." ont également étendu la chaîne de chemin. Cela a également fonctionné.

Le problème pour moi était donc que la taille totale de la chaîne chemin + nom de fichier était trop longue !

0 votes

+1 pour cela, attention à la limite de 260 caractères de la longueur des chemins d'accès Windows qui peut facilement être atteinte lorsque des chaînes d'outils compliquées commencent à créer des fichiers temporaires à l'intérieur de répertoires temporaires à l'intérieur de dossiers de projets bien imbriqués.

1voto

MadeOfAir Points 571

Pour un projet d'assemblage (ProjectName -> Build Dependencies -> Build Customizations -> masm (selected)), le paramètre Générer une liste de sources prétraitées à Véritable a causé le problème pour moi aussi, effacer le paramètre a réglé le problème. VS2013 ici.

1voto

Nicko Po Points 585

Je rencontre le même problème avec le linker qui se plaint de l'absence de l'exécutable principal. Cela s'est produit pendant le portage de notre solution vers la nouvelle version de Visual Studio 2013 . La solution est un mélange varié de projets/codes gérés et non gérés. Le problème (et la solution) s'est avéré être un code manquant. app.config dans le dossier de la solution. J'ai mis une journée à comprendre ce problème :(, car le journal de sortie n'était pas très utile.

1voto

David Points 55

J'ai vérifié tous mes paramètres en fonction de cette liste : http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . Il m'est utile et pour ma situation, je découvre que le lien de dépendance des propriétés des projets a des guillemets, ce qui ne devrait pas être là.

0voto

easuter Points 327

Je réponds parce que je ne vois pas cette solution particulière répertoriée par quelqu'un d'autre.

Apparemment, mon antivirus (Ad-Aware) signalait une DLL dont dépend un de mes projets et la supprimait. Même après avoir exclu le répertoire où se trouve la DLL, le même comportement a continué jusqu'à ce que je redémarre mon ordinateur.

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