Не удается открыть для записи visual studio
1>------ Построение начато: проект: game_life, Конфигурация: Debug Win32 ------
1>Построение начато 14.08.2014 13:32:36.
1>InitializeBuildStatus:
1> Обращение к "Debug\game_life.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1>LINK : fatal error LNK1168: не удается открыть . \game_life.exe для записи
1>
1>Сбой построения.
1>
1>Затраченное время: 00:00:00.55
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Иногда выскакивает такая магическая ошибка и очень мешает работать.
Хм. Самое очевидное, приложение все еще может работать на момент пересборки.
me, да нет, не работает оно..
Laynos
> да нет, не работает оно..
Какой то процесс остался висеть.
Тут обычно два варианта - либо он сам отвалится через несколько секунд/минут.
Либо открывайте планировщик задач и грохайте вручную.
Kartonagnick
> Какой то процесс остался висеть.
>
> Тут обычно два варианта - либо он сам отвалится через несколько секунд/минут.
> Либо открывайте планировщик задач и грохайте вручную.
А можно как-то VS заставить автоматически его грохать?
Просто очень неудобно работать.
Laynos
Если он остается висеть после закрывания окна, скорее всего это твой многопоточный говнокод виноват.
-Eugene-
о да. Он такой, мой код. Каждый человек, увидевший его, быстро убегает со слезами и годами не выходит из дому. Бойтесь мой говнокод - он нелогичен, поэтому и страшен.
Laynos
Так я угадал, что ты пытаешься что-то делать с потоками?
Мне думается, ты забываешь корректно убить другие потоки. Или корректно завершить 3rdparty-код, который умеет в многопотчность.
-Eugene-
как вариант, он мог просто прибить окно, а mainLoop продолжает крутить )
-Eugene-
ага.
MaxImuS
-Eugene-
скорее всего вы правы. За собой надобно почистить ресурсы и удалить потоки
Хотя у меня такое было даже в одном главном потоке. Когда запускал пример SFML.
MaxImuS
Мне помнится он тут недавно о потоках темы создавал.
А теперь у него характерная для незавершенных потоков проблема.
Хмм, я думаю, где-то здесь есть связь.
-Eugene-
проблема людей, не поняв как работает апп в один, хотя бы, поток, кидаются в многопоточность, так как кто-то сказал, что это круто
Laynos
открой диспетчер задачь и просто посмотри в него, после того, как закрываешь приложение остается оно висеть в процессах или нет
>А можно как-то VS заставить автоматически его грохать?
Можно на prebuild шаг повесить утилитку, которая будет убивать нужный процесс.
ilusha_nil
я думаю, нестоит издеваться над собой, а просто понимать то, что пишешь в коде
Компоновщик не может произвести запись в filename . Файл используется или его дескриптор заблокирован другим процессом либо у вас нет разрешения на запись для этого файла, каталога или сетевой папки, в которой находится файл. эта ошибка часто вызывается временным условием, например блокировкой, удерживаемой антивирусной программой, процессом индексирования поиска файлов или задержкой освобождения блокировки, удерживаемой системой сборки Visual Studio.
Чтобы устранить эту проблему, убедитесь, что дескриптор файла filename не заблокирован и у вас есть разрешение на запись в данный файл. Если это исполняемый файл, убедитесь, что он не запущен на исполнение.
вы можете использовать служебные программы Windows SysInternals или обозреватель процессов , чтобы определить, на filename каком процессе выполняется блокировка файла. С помощью программы Process Explorer можно также снимать блокировку дескрипторов открытых файлов. Сведения об использовании этих программ см. в поставляемых с ними файлах справки.
Если файл заблокирован антивирусной программой, для устранения проблемы исключите выходные каталоги сборки из автоматической проверки антивирусной программой. Программы проверки на вирусы часто запускаются при создании в системе новых файлов и блокируют эти файлы на время проверки. Сведения о порядке отключения проверки определенных каталогов см. в документации антивирусной программы.
Если файл заблокирован службой индексирования поиска, для устранения этой проблемы отключите автоматическое индексирование выходных каталогов сборки. Дополнительные сведения см. в документации службы индексирования. чтобы изменить службу индексирования Windows поиска, используйте параметры индексирования в панель управленияеWindows. дополнительные сведения см. в разделе индексирование поиска в Windows 10: часто задаваемые вопросы.
Если процесс сборки не может перезаписать исполняемый файл, возможно, он заблокирован программой Проводник. если служба прикладного программного интерфейса была отключена, проводник может хранить блокировку исполняемого файла в течение длительного времени. Чтобы устранить эту проблему, запустите Services. msc и откройте диалоговое окно " свойства " для службы " взаимодействие приложений ". Измените Тип запуска с " отключено " на " вручную".
Эта ошибка возникает, когда компоновщику не удается открыть файл для чтения или записи. Ниже перечислены две наиболее распространенные причины этой проблемы.
Программа уже запущена или загружена в отладчике, и
пути к библиотеке неверны или не заключены в двойные кавычки.
Существует множество других возможных причин этой ошибки. Чтобы сократить их, сначала проверьте Тип файла. Затем используйте следующие разделы для выявления и исправления конкретной проблемы.
Не удается открыть приложение или его PDB-файл
Приложение выполняется или загружается в отладчике
Если filename — имя исполняемого файла или связанный с ним PDB-файл, см. раздел Если приложение уже запущено. Затем проверьте, загружен ли он в отладчик. Чтобы устранить эту проблему, перед повторным созданием программы закройте программу и выгрузите ее из отладчика. Если приложение открыто в другой программе, например в редакторе ресурсов, закройте его. Если программа не отвечает, может потребоваться завершить процесс с помощью диспетчера задач. Также может потребоваться закрыть и перезапустить Visual Studio.
Приложение заблокировано антивирусным сканированием
Антивирусные программы часто временно блокируют доступ к вновь созданным файлам, особенно .exe и .dll исполняемые файлы. Чтобы устранить эту проблему, попробуйте исключить каталоги сборки проекта из антивирусного сканера.
Не удается открыть файл библиотеки Майкрософт
Windows библиотеки, например kernel32. lib
Если файл, который не удается открыть, является одним из стандартных файлов библиотеки, предоставляемых корпорацией Майкрософт, например kernel32. lib, может возникнуть ошибка конфигурации проекта или ошибка установки. убедитесь, что Windows SDK установлен. если для проекта требуются другие библиотеки майкрософт, такие как MFC, убедитесь, что компоненты MFC также установлены установщиком Visual Studio. Вы можете снова запустить установщик, чтобы добавить дополнительные компоненты в любое время. Дополнительные сведения см. в Изменение Visual Studio. Используйте вкладку отдельные компоненты в установщике, чтобы выбрать конкретные библиотеки и пакеты SDK.
Библиотеки vcruntime с отслеживанием версий
Библиотеки для розничной торговли, отладки или конкретной платформы
Эта ошибка может возникнуть при первой сборке для новой целевой платформы или конфигурации, например в розничной торговле или ARM64. в интегрированной среде разработки проверьте, установлены ли набор инструментов платформы и Windows SDK версии , указанной на странице свойств общие . также убедитесь, что необходимые библиотеки доступны в каталогах библиотек , указанных на странице свойств каталоги VC++. Проверьте свойства каждой конфигурации, например Debug, Retail, x86 или ARM64. Если одна сборка работает, но другая нет, Сравните параметры обоих параметров. Установите все отсутствующие необходимые инструменты и библиотеки.
Библиотека vccorlib. lib
Библиотеки в проектах из сетевых или других источников
При построении проекта, скопированного с другого компьютера, расположения установки библиотеки могут отличаться. Для сборок из командной строки убедитесь, что для сборки правильно заданы пути к переменной среды LIB и библиотеке. в Visual Studio можно просмотреть и изменить текущие пути к библиотекам, заданные на страницах свойств проекта. на странице VC++ каталоги выберите элемент управления "раскрывающийся список" для свойства каталоги библиотек , а затем нажмите кнопку изменить. В разделе вычисленное значение диалогового окна каталоги библиотек перечислены текущие пути поиска файлов библиотек. Обновите эти пути, чтобы они указывали на локальные библиотеки.
обновленные библиотеки Windows SDK
Не удается открыть сторонний файл библиотеки
Существует несколько распространенных причин этой проблемы.
Путь к файлу библиотеки может быть неверным или не заключен в двойные кавычки. Или, возможно, вы не указали его для компоновщика.
Возможно, вы установили 32-разрядную версию библиотеки, но при этом собираетесь на 64 бит или наоборот.
Библиотека может зависеть от других библиотек, которые не установлены.
Может потребоваться предоставить каталог библиотеки, переопределяющий каталог стандартной библиотеки. В командной строке используйте параметр /libpath . В интегрированной среде разработки используйте свойство Дополнительные каталоги библиотек на странице свойств " Общие" компоновщика > свойств > конфигурации для проекта.
Убедитесь, что установлены все версии библиотеки, необходимые для создаваемых конфигураций. воспользуйтесь программой управления пакетами vcpkg , чтобы автоматизировать установку и настройку для многих распространенных библиотек. По возможности лучше создавать собственные копии сторонних библиотек. Затем вы убедитесь, что все локальные зависимости библиотек созданы для тех же конфигураций, что и ваш проект.
Не удается открыть файл, созданный проектом
Эта ошибка может возникать, если файл filename еще не существует, когда компоновщик пытается получить к нему доступ. Это может произойти, когда один проект зависит от другого в решении, но проекты создаются в неправильном порядке. Чтобы устранить эту проблему, убедитесь, что ссылки проекта заданы в проекте, который использует этот файл. После этого отсутствующий файл будет создан до того, как он потребуется. дополнительные сведения см. в статьях добавление ссылок в проекты Visual Studio C++ и управление ссылками в проекте.
Не удается открыть файл "К:\програм.ОБЖ"
Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /libpath . Также проверьте пути, указанные в переменной среды LIB, и пути, указанные в командной строке. Обязательно используйте двойные кавычки для всех путей, содержащих пробелы.
Чтобы устранить эту проблему в интегрированной среде разработки, при необходимости добавьте двойные кавычки для следующих свойств проекта:
свойство каталоги библиотеки на странице свойств конфигурации > VC++ каталоги
Свойство " Дополнительные каталоги библиотек " на странице свойств " Общие" компоновщика > свойств > конфигурации
Свойство Дополнительные зависимости на странице свойств входных данных компоновщика > свойств > конфигурации .
Другие распространенные проблемы
Проблемы с путями или именами файлов
Параллельная синхронизация сборок
если вы используете параллельный вариант сборки, Visual Studio мог заблокировать файл в другом потоке. Чтобы устранить эту проблему, убедитесь, что один и тот же объект кода или библиотека не встроены в несколько проектов. Используйте зависимости сборки или ссылки проекта, чтобы выбрать в проекте созданные двоичные файлы.
Дополнительные зависимости, указанные в интегрированной среде разработки
При указании отдельных библиотек в свойстве Дополнительные зависимости используйте пробелы для разделения имен библиотек. Не используйте запятые или точки с запятой. При использовании пункта меню Правка для открытия диалогового окна Дополнительные зависимости используйте символы новой строки для разделения имен, а не запятых, точек с запятой или пробелов. Также используйте символы новой строки при указании путей к библиотекам в папках библиотек и дополнительных каталогах библиотек .
Слишком длинные пути
Эта ошибка может появиться, когда путь к файлу расширяется до 260 символов. При необходимости измените структуру каталогов или Сократите имена папок и файлов, чтобы сократить пути.
Слишком большие файлы
Эта ошибка может возникать из-за слишком большого размера файла. Библиотеки или объектные файлы, размер которых превышает гигабайт, может вызвать проблемы для 32-разрядного компоновщика. Возможным исправлением этой проблемы является использование 64-разрядного набора инструментов. Дополнительные сведения о том, как использовать 64-разрядный набор средств в командной строке, см. в разделе как включить 64-разрядный Visual C++ набор инструментов в командной строке. сведения о том, как использовать 64-разрядный набор инструментов в интегрированной среде разработки, см. в разделе использование MSBuild с 64-разрядным компилятором и инструментами. также см. статью Stack Overflow post: как сделать Visual Studio использовать собственную цепочки инструментов amd64.
Неправильные разрешения для файла
Эта ошибка может возникать, если у вас недостаточно разрешений для доступа к файлу filename. Это может произойти, если для доступа к файлам библиотеки в защищенных системных каталогах используется обычная учетная запись пользователя. Или, если вы используете файлы, скопированные с других пользователей, у которых все еще есть исходный набор разрешений. Чтобы устранить эту проблему, переместите файл в каталог проекта с возможностью записи. Если перемещенный файл имеет недоступные разрешения, выполните команду takeown.exe в окне командной строки администратора, чтобы стать владельцем файла.
Недостаточно места на диске
Эта ошибка может возникать, если на диске недостаточно места. Компоновщик использует временные файлы в нескольких ситуациях. Даже если на диске достаточно места, большие ссылки могут выпустить или фрагментировать свободное место на диске. Рассмотрите возможность использования параметра /OPT (оптимизация) . выполнение транзитного исключения COMDAT считывает все объектные файлы несколько раз.
Проблемы в переменной среды TMP
Если имя файла LNKnnn, то это имя файла, созданного компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Кроме того, для переменной среды TMP может быть задано несколько каталогов. Для переменной среды TMP должен быть указан только один путь к каталогу.
Справка, моей проблемы нет в списке!
Использовать функцию fopen() в приложение для открытия файла, а функция использует режим доступа r +или + .
Можно запустить приложение и applicationtries, чтобы открыть файл, который равен или больше 4 гигабайт (ГБ).
В этом случае файл не открывается или возвращена следующая ошибка:
EINVAL (недопустимый аргумент)
Причина
Данная проблема возникает образом ищет функции fopen() в конце файлов после его открытия файлов для добавления. Внутри функции fopen() использует функцию _lseek() для выполнения этого действия. Тем не менее функция _lseek() не может обрабатывать файлы размером более 4 ГБ.
Решение
Данное исправление изменяет поведение функции семейства fopen() . После установки данного исправления функции fopen() внутренне использует функцию, которая может выполнять поиск за пределами 4 ГБ без возвращения ошибки. В частности функции fopen() использует функцию _lseeki64() вместо функции _lseek() .
Сведения об исправлении
Исправление от корпорации Майкрософт доступно. Тем не менее оно предназначено только для устранения проблемы, указанной в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.
Чтобы устранить эту проблему, обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:
Предварительные условия
Для установки этого исправления необходимо иметь Microsoft Visual Studio 2010 Пакет обновления 1 (SP1 установлен).
Необходимость перезагрузки
Может потребоваться перезагрузить компьютер после установки исправления, если используются уязвимые файлы.
Сведения о замене исправлений
Это исправление не заменяет ранее выпущенные исправления.
Сведения о файлах
Глобальная версия имеет атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.
Для всех поддерживаемых версий Microsoft Visual Studio 2010 с пакетом обновления 1
1>------ Построение начато: проект: game_life, Конфигурация: Debug Win32 ------
1>Построение начато 14.08.2014 13:32:36.
1>InitializeBuildStatus:
1> Обращение к "Debug\game_life.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1>LINK : fatal error LNK1168: не удается открыть . \game_life.exe для записи
1>
1>Сбой построения.
1>
1>Затраченное время: 00:00:00.55
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Иногда выскакивает такая магическая ошибка и очень мешает работать.
Хм. Самое очевидное, приложение все еще может работать на момент пересборки.
me, да нет, не работает оно..
Laynos
> да нет, не работает оно..
Какой то процесс остался висеть.
Тут обычно два варианта - либо он сам отвалится через несколько секунд/минут.
Либо открывайте планировщик задач и грохайте вручную.
Kartonagnick
> Какой то процесс остался висеть.
>
> Тут обычно два варианта - либо он сам отвалится через несколько секунд/минут.
> Либо открывайте планировщик задач и грохайте вручную.
А можно как-то VS заставить автоматически его грохать?
Просто очень неудобно работать.
Laynos
Если он остается висеть после закрывания окна, скорее всего это твой многопоточный говнокод виноват.
-Eugene-
о да. Он такой, мой код. Каждый человек, увидевший его, быстро убегает со слезами и годами не выходит из дому. Бойтесь мой говнокод - он нелогичен, поэтому и страшен.
Laynos
Так я угадал, что ты пытаешься что-то делать с потоками?
Мне думается, ты забываешь корректно убить другие потоки. Или корректно завершить 3rdparty-код, который умеет в многопотчность.
-Eugene-
как вариант, он мог просто прибить окно, а mainLoop продолжает крутить )
-Eugene-
ага.
MaxImuS
-Eugene-
скорее всего вы правы. За собой надобно почистить ресурсы и удалить потоки
Хотя у меня такое было даже в одном главном потоке. Когда запускал пример SFML.
MaxImuS
Мне помнится он тут недавно о потоках темы создавал.
А теперь у него характерная для незавершенных потоков проблема.
Хмм, я думаю, где-то здесь есть связь.
-Eugene-
проблема людей, не поняв как работает апп в один, хотя бы, поток, кидаются в многопоточность, так как кто-то сказал, что это круто
Laynos
открой диспетчер задачь и просто посмотри в него, после того, как закрываешь приложение остается оно висеть в процессах или нет
>А можно как-то VS заставить автоматически его грохать?
Можно на prebuild шаг повесить утилитку, которая будет убивать нужный процесс.
ilusha_nil
я думаю, нестоит издеваться над собой, а просто понимать то, что пишешь в коде
Читайте также: