Visual C ++ не может писать в exe - PullRequest
2 голосов
/ 24 сентября 2011

после того, как я скомпилировал свой проект в C ++ (VisualStudio) примерно 3-4 раза, я могу сделать это больше из-за LNK1168, что означает "VisualStudio не может записать в исполняемый файл". Я посмотрел в моем TaskManager, EXE не работает. Обычно мне приходится ждать около 5 минут, но это не настоящее решение. Есть идеи?

ProcessExplorer просто говорит мне, что дескриптор недействителен и хотя не может быть закрыт. Он остается открытым все время ...

Ответы [ 3 ]

3 голосов
/ 24 сентября 2011

Первое, что приходит на ум, - это использовать ProcessExplorer , чтобы выяснить, какой процесс сохраняет файл открытым. Загрузите и запустите инструмент и выберите в меню Найти . Введите (частичное) имя файла, и оно должно отображаться в результатах поиска. Дважды щелкните, чтобы перейти к процессу и дескриптору файла в главном окне приложения. Я предполагаю, что Visual Studio является виновником.

К счастью, вы также можете использовать Process Explorer, чтобы закрыть дескриптор. Щелкните правой кнопкой мыши и выберите Закрыть дескриптор .

Обратите внимание, что не стоит регулярно закрывать дескрипторы файлов. Однако всякий раз, когда вы находитесь в рассоле, это действительно может помочь решить надоедливые проблемы.

Если я правильно помню, похожая проблема существовала еще в VS 6. Она имела отношение к инкрементной компиляции. Для более структурного решения попробуйте время от времени выполнять полную перестройку или отключать инкрементную компиляцию.

2 голосов
/ 29 сентября 2012

У меня возникла точно такая же проблема (для C # и C ++). Я только что обнаружил, что отключенная служба Application Experience, похоже, заставляет EXPLORER.EXE сохранять файлы .exe в течение нескольких минут после их запуска (заблокированные SYSTEM).

Решение этой проблемы, по крайней мере для меня, состояло в том, чтобы повторно включить службу Application Experience. (Первоначально я отключил его, поскольку это казалось ненужным - очевидно, я был неправ!)

0 голосов
/ 08 июля 2016

Возможно, ваш exe еще работает.Остановите его перед перекомпиляцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...