ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл 'D: \ ... \ MyProj.exe' - PullRequest
46 голосов
/ 11 октября 2010

При использовании Visual Studio 2010, когда я собираю + запускаю приложение через короткие промежутки времени, я часто получаю следующую ошибку. Если я просто подожду минуту или две и попробую еще раз, все будет хорошо. Unlocker утверждает, что ни один дескриптор не блокирует исполняемый файл.
Как узнать, что его блокирует?
Если это сама Visual Studio, что мне следует сделать, чтобы остановить ее? или альтернативно выпустить файл?

1>------ Build started: Project: MyProj, Configuration: Release Win32 ------
...
1>InitializeBuildStatus:
1>  Creating "Release\MyProj.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  All outputs are up-to-date.
1>  SomeFile1.cpp
1>ResourceCompile:
1>  All outputs are up-to-date.
1>LINK : fatal error LNK1104: cannot open file 'D:\...\MyProj.exe'
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.94
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Ответы [ 15 ]

1 голос
/ 04 января 2014

Чтобы добавить еще одно решение в список, я обнаружил, что Visual Studio (в моем случае 2012) иногда блокирует файлы в разных процессах.

Так что в случае сбоя devenv.exe можетвсе еще работает и держится за файл (ы).В качестве альтернативы (как я только что обнаружил) vstestrunner или vstestdiscovery также могут удерживать файл.

Убить все эти процессы, и это может решить проблему.

0 голосов
/ 15 октября 2017

Мое то, что если вы установите опцию файла списка MASM для какого-то дополнительного выбора, это выдаст вам эту ошибку.

Просто используйте

 Enable Assembler Generated Code Listing   Yes/Sg
 Assembled Code Listing $(ProjectName).lst

это нормально.

Но у вас есть дополнительные проблемы.

0 голосов
/ 31 марта 2016

У меня только что была такая же проблема.Со мной exe все еще работал, но я не мог закончить его с помощью диспетчера задач.Просто перезапустив VS, у меня это сработало.

0 голосов
/ 14 декабря 2013

Работа с принципами и практикой программирования Бьярна Страуструпа. На примере «FLTK» на C ++ я получил ту же ошибку, но примерно через 1 час у меня появилась идея, что я отслеживал одну из библиотек, уже видимую в Project Properties -> Linker -> Input - > Дополнительные зависимости, в моем случае я отследил kernel32.lib, чтобы увидеть, где он находится, и увидел, что в разных папках было много kernel32.lib. Поэтому я начал копировать библиотеки FLTK в эти папки, и последняя, ​​которую я попробовал, сработала. Visual Studio 2013 Express обнаружил fltkd.lib и код сработал.

В моем случае правильным маршрутом был C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Lib \ winv6.3 \ um \ x86

Я не знаю, как установить этот маршрут в Visual Studio.

Не уверен, что папка с наборами Windows была создана при установке Microsoft Windows SDK для Windows 7 и .NET Framework 4 (ISO) http://www.microsoft.com/en-us/download/details.aspx?id=8442

Надеюсь, что это поможет вам.

0 голосов
/ 07 марта 2013

Ошибка возникает (по крайней мере, иногда) из слишком длинных путей. В моем проекте просто сокращение пути выходного файла делает работу: «Свойства / Конфигурация Свойства / Общие / Промежуточный каталог»

Кажется, я столкнулся с ограничением пути в 250 символов.

...