Ошибка lnk1105 не удается закрыть файл
Доброго дня %User%
Существует прожект, часть которого написана на Qt. На 1 машине оно компилится совершенно нормально, а на другой падает jom.
При компиле debug версии получаем выхлоп:
echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\Editor.exe.embed.manifest">debug\Editor.exe_manifest.rc
if not exist debug\Editor.exe if exist debug\Editor.exe.embed.manifest del debug\Editor.exe.embed.manifest
if exist debug\Editor.exe.embed.manifest copy /Y debug\Editor.exe.embed.manifest debug\Editor.exe_manifest.bak
link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\Editor.exe.embed.manifest /OUT:debug\Editor.exe @C:\Users\user_2\AppData\Local\Temp\Editor.exe.4304.182132.jom
debug\Editor.exe : fatal error LNK1106: недопустимый файл или нет места на диске: не удается обратиться к 0x3BAA50
jom: C:\Temp\build\Makefile.Debug [debug\Editor.exe] Error 1105
jom: C:\Temp\build\Makefile [debug] Error 2
16:31:25: Процесс «E:\Qt\Tools\QtCreator\bin\jom.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта Editor (комплект: Desktop Qt 5.3 MSVC2013 OpenGL 64bit)
Во время выполнения этапа «Сборка»
В итоге получается ехешник, но с повреждённым хидером -> не запускается никак.
при компиле release версии получаем:
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\Editor.exe.embed.manifest /OUT:release\Editor.exe @C:\Users\user_2\AppData\Local\Temp\Editor.exe.4240.162428.jom
LINK : fatal error LNK1105: не удается закрыть файл "release\Editor.exe"
jom: C:\Temp\build\Makefile.Release [release\Editor.exe] Error 1105
jom: C:\Temp\build\Makefile [release] Error 2
16:45:16: Процесс «E:\Qt\Tools\QtCreator\bin\jom.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта Editor (комплект: Desktop Qt 5.3 MSVC2013 OpenGL 64bit)
Во время выполнения этапа «Сборка»
Suddenly, my Visual Studio Express 2010 C++ stopped rebuilding my project. When I first hit F7 the project builds and runs fine (heck, it's a hello world example).
Then I make some changes and hit F7 again, then I get:
Now the funny thing comes:
- The app is not running and it's not shown in the Task Manager.
- Going into the project directory and trying to remove it with hands comes with success but the file APPEARS AGAIN FROM NOWHERE.
- The system restore is disabled.
- I also tried to take the ownership of the whole damn drive.
- Every time I delete the file it recreates itself again but sometimes it stops doing that.
- If I delete the file (and it recreates after that), and then I start sysinternals procmon then the file disappears.
- If I start procmon before - then the file keeps appearing after delete like always.
OS: W7 SP1 64-bit, with latest updates
Any ideas, please?
2 ответы
Я испытал ту же ошибку. В моем случае это был блокировщик поведения Comodo Antivirus, вызывающий проблемы.
ответ дан 01 мар '13, в 15:03
Точно. Я бы никогда не подумал об этом. Голосуйте! - ЛТКД
Удаление Comodo Antivirus устранило эту ошибку, а также множество других проблем, которые у меня были с другими инструментами программирования. Примечание: отключение было не достаточно для меня, я должен был удалить его полностью. - Джей Бентли
Принято вместе с комментарием об удалении. - пользователь 238801
Недавно я столкнулся с той же проблемой (Windows 8.1, Boost 1.57). Даже после выхода из Comodo Internet Security вспомогательная служба COMODO Internet Security (cmdagent.exe) остается активной. Не сумев остановить его из оснастки «Службы», я изменил тип запуска службы с «Автоматически» на «Вручную» и убил процесс с помощью Process Explorer из Sysinternals Suite. После этого заработал Boost bootstrap.
Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.
Вопрос
Подскажите пожалуйста. Пишу исходник в Microsoft Visual C++ 2008 Express Edition. Компилирую - все нормально, работает. вношу какие либо изменения в коде и пытаюсь заново скомпилировать. Выдает вот такую ошибку.
1>------ Построение начато: проект: 5_stepen', Конфигурация: Debug Win32 ------
1>Компиляция.
1>stepen'.cpp
1>Компоновка.
1>LINK : fatal error LNK1168: не удается открыть C:\Users\Anton\Documents\Visual Studio 2008\Projects\5_stepen'\Debug\5_stepen'.exe для записи
1>Журнал построения был сохранен в "file://c:\Users\Anton\Documents\Visual Studio 2008\Projects\5_stepen'\5_stepen'\Debug\BuildLog.htm"
1>5_stepen' - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Для устранения приходится сохранить мой.cpp и закрыть прогу. через 2 минуты отрывать. тогда запускается компиляция. Ни чего не могу поделать.
14 Answers 14
The problem is probably that you forgot to close the program and that you instead have the program running in the background.
Find the console window where the exe file program is running, and close it by clicking the X in the upper right corner. Then try to recompile the program. In my case this solved the problem.
I know this posting is old, but I am answering for the other people like me who find this through the search engines.
This fixed it for me. I will say though, I had to look under processes in windows task manager, because the console window disappeared.
I am not able to close by X button is there any other way. One way i found is lose your IDE and then it will automatically close prompt window.
Win10 VS 2017. Quitting everything until there was nothing of relevance in the task manager doesn't help, instead I have to reboot the machine. When shutting down an error dialog suddenly appears and is immediately closed out of, presumably this dialog needed to be closed before the debugger could access the app again but the dialog does not appear (until shutting down). Perhaps this process existed in the task manager but with a generic/unhelpful name.
Adding to my above comment, Task Manager does not display the filename.exe process but Resource Monitor does, so I'm able to kill it from there which solves the issue without having to reboot.
Enable “Application Experience” service. Launch a console window and type net start AeLookupSvc
It worked for me. Another ridiculous Windows hack. Microsoft should pay Google a hefty sum for supporting its OS, otherwise no one would be able to use the thing.
@AhmetTavli I have the same problem. The service seems to not be available in Win10. Have you found a solution to this?
I've encountered this problem when the build is abruptly closed before it is loaded. No process would show up in the Task Manager, but if you navigate to the executable generated in the project folder and try to delete it, Windows claims that the application is in use. (If not, just delete the file and rebuild, which generates a new executable) In Windows(Visual Studio 2019), the file is located in this directory by default:
To end the allegedly running process, open the command prompt and type in the following command:
This forces any running instance to be terminated. Rebuild and execute!
Restarting Visual Studio solved the problem for me.
In my case, cleaning and rebuilding the project resolved the problem.
well, I actually just saved and closed the project and restarted VS Express 2013 in windows 8 and that sorted my problem.
Hi Sparsh Jain, the question mentioned that "visual studio express 2010" on "W7 SP1" was being used. Moreover I don't think that your answer doesn't add anything that existing answers haven't covered.
Thanks! I did that with VS 2015 on windows 10 and it helped me :) I think that's the easiest way to solve this problem.
Я столкнулся с этой проблемой при компиляции примера приложения с использованием VS2017 Надеюсь, это поможет
Перейдите к свойствам вашего проекта, выберите Linker слева. Добавьте это в " Дополнительные каталоги библиотек":
Для бедных людей, которые борются с этим, после часа исследований я нашел решение для моей Visual Studio Enterprise 2017:
Сначала давайте найдем, где находится файл вашей библиотеки:
С помощью проводника Windows перейдите в каталог, в котором установлена Visual Studio (по умолчанию: C:\Program Files (x86)\Microsoft Visual Studio), и выполните поиск по msvcrtd.lib.
Я нашел мой, чтобы быть здесь:
Быстрое исправление (только для одного проекта):
Щелкните правой кнопкой мыши по вашему проекту, щелкните по свойствам, перейдите к Linker, добавьте этот путь в Дополнительные каталоги библиотек
Постоянное исправление (для всех проектов)
Открыть проект перейдите к View> Property Manager (это может быть в других окнах) Разверните все папки и выберите несколько " Microsoft.cpp.Win32.user " и " Microsoft.cpp.64.user "
Щелкните правой кнопкой мыши и перейдите к свойствам
Перейдите в каталог VC++ .
Добавьте путь к каталогам библиотеки по умолчанию
В некоторых диалоговых окнах свойств в свойствах проекта есть флажок, указывающий "Наследовать от родительских или проектов по умолчанию" . Убедитесь, что флажок флажка Включить и Библиотека отмечен флажком и, конечно, для окна Дополнительные зависимости.
Я столкнулся с этим вопросом. Файл существовал на моей машине, он был в пути поиска. Я был озадачен, так как результат ошибки действительно бесполезен. В моем случае я включил смягчение Spectre, но не загрузил библиотеки времени выполнения для Spectre. Как только я сделал загрузку, все было в порядке с миром. Я должен был установить это на своих серверах сборки CI, так как эти библиотеки не установлены с VS по умолчанию.
Если вы используете VS2017, пожалуйста, прочитайте его. Или просто проигнорируйте этот ответ. Он может быть недействительным для другой версии VS.
Не доверяйте никому, кто сказал вам, чтобы добавить путь к lib.
-
[ЛУЧШИЙ] Вам просто нужно установить их через VS_installer (большинству из нас просто нужна версия для x86/x64 ниже)
- Windows 7
- Visual Studio Express 10
- 64bit
- Деактивировать Comodo Internet Security Premium
- Запустите vcvars32.bat
- b2.exe НЕ запущен (перезагрузился для проверки)
-
VC++ версия 2017 года version_numbers Libs для Spectre [(x86 и x64) | (ARM) | (ARM64)] Визуальный C++ ATL для [(x86/x64) | ARM | ARM64] с призраками Визуальный C++ MFC для [x86/x64 | ARM | ARM64] с призраками
Это ошибка VisualStudioTeam, и Microsoft виновата.
Вы не можете создать глобальную конфигурацию для отключения /QSpectre и IDK, когда и почему VS2017 включит его за один день. Так что лучше всего установить Spectre ? ahhha?
Удаление это решает проблему. Просто публикация здесь как связанная проблема для людей, ищущих решения: После установки WDK VC++ не работает
Я решил эту проблему, вам нужно установить все спектры lib. Vistual Studio Installer-> Изменить → Component-> Любой призрак lib. Это решение может быть адаптировано к любому проекту.
Сценарий:
Windows 10 с Visual Studio 2017 (установка FRESH).
Проект 'C' (ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл ' MSVCRTD.lib ').
Разрешить:
Запустите " Установщик Visual Studio ".
Выберите " Разработка рабочего стола с помощью C++ ".
В разделе "Сведения об установке" (обычно на правой боковой панели) выберите:
4.1. V C++ 2015.3 v14.00 (v140) набор инструментов для рабочего стола.
-
Версия набора инструментов в 4.1. это только для примера.
Щелкните правой кнопкой мыши "SomeProject" → "Свойства" → " Линкер " → " Общие " → " Дополнительные каталоги библиотек ": $ (VCToolsInstallDir)\lib\x86
(. для проекта x64: "Дополнительные каталоги библиотек": $ (VCToolsInstallDir)\lib\x64 . )
также стоит проверить, что файл MSVCRTD.lib присутствует в "C:\Program Files\Microsoft Visual Studio 10.0\VC\lib" для x64 и в C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib для 32 бит. Иногда VS может быть неправильно установлен или эти файлы могут быть удалены случайно.
Для VS 2019 функция смягчения последствий включена по умолчанию. Таким образом, правильным способом решения этой проблемы будет установка VC++ Libs для Spectre.
Но, чтобы быстро решить проблему, вы можете отключить Призрачное смягчение
Project Properties → C/C++ → Code Generation → Spectre Mitigation → Disabled
Я включил следующий путь
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86 и
C:\Local\boost_1_64_0\lib64-MSVC-14,1
проект properties-> linker-> Дополнительные каталоги
Перейдите в Проект → Свойства → C/C++ → Генерация кода → Смягчение последствий → Отключено
Я столкнулся с этим с помощью Visual Studio 2017. Я попробовал решения, предложенные здесь, с явным добавлением путей к месту расположения файла "MSVCRT.lib". Но я чувствовал, что это, вероятно, не правильный подход, потому что ранее в течение последних нескольких недель это не было проблемой с моим проектом.
После проб и ошибок я обнаружил, что если я оставлю пустое или пустое значение в разделе Linker → Input, это выдаст мне ошибку о LNK1104: невозможно открыть файл 'MSVCRT.lib'. В конце концов я понял, что вместо этого я должен оставить это значение.
В проекте Visual Studio щелкните правой кнопкой мыши элемент проекта на панели обозревателя решений (а не само решение, которое является самым верхним элементом), затем выберите "Свойства". Оттуда сделайте следующее:
Linker → Input: % (AdditionalDependencies)
Эта дополнительная информация может быть полезна, если вы попали в ситуацию так же, как я. Я обнаружил, что я не должен помещать какие-либо несистемные пути к библиотекам в раздел Linker → Input. С моим проектом я пытался скомпилировать с внешними .lib файлами. Ранее у меня было значение в этом разделе ввода, например: $ (ProjectDir) lib; % (AdditionalDependencies), но это приводит к другим проблемам. Я обнаружил, что правильное место (кажется, пока) для размещения путей для ссылки на внешние файлы .lib в проекте C/C++ в Visual Studio 2017 находится здесь:
V C++ Каталоги → Библиотечные каталоги: $ (ProjectDir) lib; $ (LibraryPath)
Обратите внимание, что значение $ (LibraryPath) будет включать дополнительные значения, такие как унаследованные от родителей. Мой проект папок содержал папку с именем "lib", поэтому у меня было первое значение перед точкой с запятой.
Каждый раз, когда я пытаюсь запустить bootstrap.bat, я получаю эту ошибку через несколько секунд:
Технические характеристики системы
Что я уже пробовал
вы запускали командную строку с правами администратора? также существует максимальная длина символов 256 с NTFS, если ваши имена файлов + имена каталогов слишком длинные, это может привести к сбоям - std''OrgnlDave
Я запускал его от имени администратора + имя файла и путь короче 256 символов - user238801
@Layne Я не знаю, есть ли у вас все еще эта проблема, но у меня только что была аналогичная проблема со сборкой LibMySQL (ошибки LNK1105), и деактивации Comodo Internet Security Premium было недостаточно. Мне пришлось полностью удалить его, и моя проблема исчезла. - JBentley
Все ответы
Такое происходит, когда Ваш файл 5_stepen.exe не доступен для записи. В ОС WinNT это ситуация возникает, когда файл залочен. Причиной может служить следующее: Вы скомпилировали проект и запустили полученный код. Вносите изменения, компилируете, но запись в файл .exe линковщиком не может быть выполнена, т.к. программа продолжает выполняться, т.е. она продолжает висеть в памяти. Для решения проблемы необходимо просто остановить выполнение Вашей программы 5_stepen.exe.
Спасибо Albova. Оказывается в виндовс 7 программа висит в памяти ещё около минуты. На ХР таких проблем не возникает! ХР рулит во многом! Спасибо.
Здравствуйте, я использую Visual Studio 2008 Pro (C++). Недавно появилась такая проблема: при построении проекта построение "останавливается" на компановке и дальше ни в какую. Студия закрывается только экстренным завершением через диспетчер задач. При этом после закрытия остается процесс link.exe, который:
1) нельзя "убить" (пробовал стандартным диспетчером задач Win XP, Far менеджером);
2) использует файлы компилированного проекта (BuildLog.htm, main.obj, Program.exe в папке Debug) таким образом их нельзя удалить или изменить (при перезапуске визуалки проект не компилируется);
3) не может завершиться при попытке выхода из пользователя/ухода в спящий режим/выключения/перезагрузки, т.е. комп выключается только через ресет.
При этом если после перезапуска визуалки компилировать другой проект получается (с ним может возникнуть аналогичный косяк и будет уже два "висячих" процесса).
Попробовал переставить визуалку - помогло, но не надолго (2-3 дня данной ошибки не было).
Не подскажите, как избавиться от косяка (или хотя бы "убить" процесс без перезагрузки). Заранее спасибо.
Лучший отвечающий
Ответы
Такое происходит, когда Ваш файл 5_stepen.exe не доступен для записи. В ОС WinNT это ситуация возникает, когда файл залочен. Причиной может служить следующее: Вы скомпилировали проект и запустили полученный код. Вносите изменения, компилируете, но запись в файл .exe линковщиком не может быть выполнена, т.к. программа продолжает выполняться, т.е. она продолжает висеть в памяти. Для решения проблемы необходимо просто остановить выполнение Вашей программы 5_stepen.exe.
Читайте также: