У меня есть проект qt, но если я редактирую свой код, создатель Qt выдает эту ошибку
:-1: error: LNK1168: cannot open debug\GettingStarted.exe for writing
Я не могу даже удалить папку отладки (то есть как администратор). Я должен выйти и затем вернуться. В чем проблема и как я могу ее решить?
[goo_ads]
4
[tags]
У меня есть библиотека, которая использует Intel Composer XE 2013, и я хотел бы скомпилировать ее как .lib, так как собираюсь использовать ее с другим проектом (по умолчанию она компилируется как application / EXE). Тем не менее, когда я устанавливаю тип конфигурации в Project Defaults в Configuration Manager в Visual Studio 2012, я получаю сообщение об ошибке «LNK1181: не удается открыть входной файл». Странно, что файл, который он ищет, не имеет конца файла. Проект содержит как C, C ++, так и ASM-код. У кого-нибудь есть опыт с таким поведением?
[goo_ads]
2
[tags]
Иногда, когда я пытаюсь скомпилировать свой проект, VisualStudio показывает мне эту ошибку:
1> ССЫЛКА: фатальная ошибка LNK1168: невозможно открыть C: \ Path \ myfile.exe для записи
И это не позволило мне скомпилировать проект.
Кажется, что myfile.exe еще открыт и работает в фоновом режиме, хотя я его закрыл. Я открыл Win TaskManager, но файл не отображается в списке запущенных процессов.
Эта ошибка сохраняется, и единственное решение, которое я нашел, – это перезагрузить систему, но это утомительный способ, который сводит меня с ума, потому что эта ошибка часто повторяется.
Есть идеи по ее устранению? У кого-то раньше была такая же ошибка?
Внезапно мой Visual Studio Express 2010 C ++ перестал перестраивать мой проект. Когда я впервые нажимаю F7, проект строится и работает нормально (черт возьми, это привет, мир).
Затем я вношу некоторые изменения и снова нажимаю F7, после чего получаю:
1>LINK : fatal error LNK1168: cannot open C:\Users\username\Documents\Visual Studio 2010\Projects\console\Debug\console.exe for writing**<br><br>
А теперь самое смешное:
- Приложение не запущено и не отображается в диспетчере задач.
- Попытка зайти в каталог проекта и попытаться удалить его руками увенчалась успехом, но файл ПОЯВЛЯЕТСЯ ВНОВЬ ОТКУДА.
- Восстановление системы отключено.
- Я также пытался завладеть всем чертовым приводом.
- Каждый раз, когда я удаляю файл, он воссоздается заново, но иногда перестает это делать.
- Если я удалю файл (и после этого он воссоздается), а затем запустил sysinternals procmon, файл исчезнет.
- Если я запускаю procmon раньше – то файл продолжает появляться после удаления, как всегда.
ОС: W7 SP1 64-бит, с последними обновлениями
Есть идеи, пожалуйста?
Теперь приходит забавная вещь:
- приложение не запущено и это не показано в диспетчере задач.
- зайдя в каталог проекта и пытаясь удалить его руками приходит с успехом, но файл появляется снова из ниоткуда o_O
- восстановление системы отключено
- я также пытался взять на себя ответственность за весь чертов диск
- каждый раз, когда я удаляю файл, он воссоздает себя снова, но иногда он перестает это делать
- если удалить файл (и он воссоздается после этого), а затем я запустите Sysinternals procmon, затем файл исчезнет.
- если я начну procmon до – то файл продолжает появляться после удаления, как всегда
OS: W7 SP1 64-бит, с последними обновлениями
есть идеи, пожалуйста? google мне не помог: (
8 ответов
проблема наверное в том, что вы забыли закрыть программу и вместо вас программа работает в фоновом режиме.
найдите окно консоли, в котором запущена программа exe-файла, и закройте его, щелкнув X в правом верхнем углу. Затем попробуйте перекомпилировать программу. В моем случае это решило проблему.
Я знаю, что это сообщение старое, но я отвечаю за других людей, таких как я, которые находят это через поисковые системы.
перезапуск Visual Studio решил проблему для меня.
в моем случае очистка и восстановление проекта решили проблему.
ну, я на самом деле просто сохранил и закрыл проект и перезапустил VS Express 2013 в windows 8, и это отсортировало мою проблему.
Это также может быть проблемой из-за неправильного использования функций, таких как FindNextFile, когда FindClose никогда не выполняется. Процесс построенного файла завершается, и сама сборка может быть удалена, но LNK1168 предотвратит перестроение из-за открытого дескриптора. Это может создать утечку дескриптора в Проводнике, которая может быть устранена путем завершения и перезапуска проводника,но во многих случаях необходима немедленная перезагрузка.
У меня также была эта же проблема. Окно консоли больше не было открыто, но я мог видеть, как работает мое приложение, перейдя к процессам в диспетчере задач. Имя процесса было именем моего приложения. Как только я закончил процесс, я смог построить и скомпилировать свой код без проблем.
запустите программу как администратор, он не может переписать ваши файлы, потому что ваши файлы находятся в защищенном месте на вашем диске.
2 ответа
Лучший ответ
У меня уже много раз возникала эта ошибка. Хотя ваш myfile.exe не отображается в TaskManager, он еще присутствует в фоновом режиме. Если вы откроете cmd как администратор и наберете:
Вы можете увидеть, как работает ваш процесс.
Итак, теперь введите команду:
taskkill / IM myfile.exe / F
Чтобы заставить процесс убить.
Теперь, если вы снова попытаетесь скомпилировать свой проект, вы увидите, что с компилятором все в порядке, и ошибка устранена.
Конечно, возможно, что эта ошибка повторится снова, поэтому я предлагаю вам создать файл .bat, который запускает команду kill, чтобы вы могли быстро решить проблему.
0
LolloAAA
22 Ноя 2020 в 15:54
Касательно: LNK1168
У Microsoft есть веб-страница, посвященная этой ошибке:
LNK1168
Первое, что находится на связанной странице:
The linker can’t write to filename.
Остальная часть страницы обсуждает детали того, почему компоновщик не может записывать в файл.
0
user3629249
24 Ноя 2020 в 01:23
12 ответов
Лучший ответ
Запустите вашу программу как администратор. Программа не может перезаписать ваши файлы, потому что они находятся в защищенном месте на жестком диске.
-4
Joonatan Ritalahti
17 Мар 2020 в 12:44
У меня тоже была такая же проблема. Мое окно консоли больше не было открыто, но я мог видеть, как работает мое приложение, перейдя к процессам в диспетчере задач. Имя процесса было именем моего приложения. Как только я закончил процесс, я смог без проблем собрать и скомпилировать свой код.
-1
Jason
12 Сен 2013 в 23:54
НАКОНЕЦ НАИЛУЧШИЙ СПОСОБ Сработал ИДЕАЛЬНО ДЛЯ МЕНЯ
Ни одно из решений на этой странице не помогло мне ЗА ИСКЛЮЧЕНИЕМ СЛЕДУЮЩЕГО
Под разделами комментариев ко второму ответу попробуйте следующее:
Добавляя к моему вышеупомянутому комментарию, Диспетчер задач не отображает filename.exe, но Монитор ресурсов , поэтому я могу убейте его оттуда, что решит проблему без перезагрузки. – A__ 19 июн.
0
passionateProgrammer
14 Авг 2020 в 14:32
Я знаю, что это старый вопрос, но подумал, что расскажу, как я решил проблему.
Если вы используете Visual Studio и возникает эта ошибка, вы можете попытаться подключиться к процессу (CTRL + ALT + P) и найти процесс «(программа) .exe». Когда вы попытаетесь подключиться к нему, отобразится сообщение об ошибке о том, что подключиться не удалось, что удаляет процесс из «запущенного» (даже если это не так …). Вы также сможете удалить (программу) .exe из ваша папка отладки.
Надеюсь, это поможет кому-то! 🙂
0
tw1tch01
4 Окт 2019 в 05:25
Это также может быть проблемой из-за неправильного использования таких функций, как FindNextFile, когда FindClose никогда не выполняется. Процесс созданного файла завершается, и саму сборку можно удалить, но LNK1168 предотвратит перестройку из-за открытого дескриптора. Это может вызвать утечку дескрипторов в проводнике, которую можно устранить, завершив и перезапустив проводник, но во многих случаях необходима немедленная перезагрузка.
0
Laurie Stearn
9 Окт 2015 в 02:44
Причина в том, что ваша предыдущая сборка все еще работает в фоновом режиме. Я решаю эту проблему, выполнив следующие действия:
- Открыть диспетчер задач
- Перейти к вкладке “Сведения”
- Найдите свое приложение
- Завершите задачу, щелкнув по ней правой кнопкой мыши
- Выполнено!
1
back2Lobby
10 Авг 2020 в 11:59
Ну, на самом деле я просто сохранил и закрыл проект и перезапустил VS Express 2013 в Windows 8, и это решило мою проблему.
1
Sparsh Jain
8 Апр 2015 в 17:50
В моем случае очистка и перестройка проекта решили проблему.
4
Uli Köhler
2 Мар 2014 в 15:54
Я столкнулся с этой проблемой, когда сборка внезапно закрывается перед загрузкой. В диспетчере задач не будет отображаться ни один процесс, но если вы перейдете к исполняемому файлу, созданному в папке проекта, и попытаетесь его удалить, Windows заявит, что приложение уже используется. (Если нет, просто удалите файл и выполните повторную сборку, в результате чего будет создан новый исполняемый файл). В Windows (Visual Studio 2019) файл по умолчанию находится в этом каталоге:
%USERPROFILE%\source\repos\ProjectFolderName\Debug
Чтобы завершить предположительно запущенный процесс, откройте командную строку и введите следующую команду:
taskkill /F /IM ApplicationName.exe
Это принудительно завершает любой запущенный экземпляр. Восстановите и выполните!
12
Amal K
27 Фев 2021 в 09:31
Перезапуск Visual Studio решил проблему для меня.
12
Aleksei Mialkin
7 Янв 2017 в 18:15
Проблема, вероятно, в том, что вы забыли закрыть программу и вместо этого она работает в фоновом режиме.
Найдите окно консоли, в котором запущена программа с файлом exe, и закройте его, щелкнув X в правом верхнем углу. Затем попробуйте перекомпилировать программу. В моем случае это решило проблему.
Я знаю, что эта публикация устарела, но я отвечаю за других людей вроде меня, которые находят ее через поисковые системы.
68
CodeMed
6 Июл 2013 в 06:53
Решение
Некоторые распространенные причины ошибки LNK1181:
- имя файла указывается как дополнительная зависимость от компоновщика
строка, но файл не существует. - Оператор A / LIBPATH, который определяет каталог, содержащий имя файла
пропал, отсутствует.
Чтобы решить вышеуказанные проблемы, убедитесь, что все файлы, на которые есть ссылки в строке компоновщика, присутствуют в системе.
Используйте параметр / LIBPATH, чтобы переопределить путь к библиотеке среды. Компоновщик сначала выполняет поиск по пути, указанному в этом параметре, а затем выполняет поиск по пути, указанному в переменной среды LIB. Вы можете указать только один каталог для каждого параметра / LIBPATH, который вы вводите. Если вы хотите указать более одного каталога, вы должны указать несколько параметров / LIBPATH. Затем компоновщик будет искать в указанных каталогах по порядку.
Чтобы установить этот параметр компоновщика в среде разработки Visual Studio
- Откройте диалоговое окно страниц свойств проекта.
- Нажмите на папку Linker.
- Нажмите на страницу свойств General.
- Измените свойство «Дополнительные каталоги библиотек».
Если это не поможет, вы можете просмотреть эти ссылки:
- Получение фатальной ошибки LNK1181: не удается открыть входной файл
- Появляется сообщение об ошибке «Неустранимая ошибка LNK1181» при создании
Управляемое приложение C ++ - Visual Studio: ССЫЛКА: фатальная ошибка LNK1181: не удается открыть ввод
файл
2
Решение
- Перейти к диспетчеру задач
ctrl+alt+del
, - поищите название вашего запущенного приложения в вашем случае
GettingStarted.exe
, - Вернитесь к своему коду и снова запустите приложение
3