Не удается открыть входной файл
У меня есть VS 2010 в Windows 7. Я создаю новый проект, выбираю язык C++, проект Win32, DLL, экспортирую символы, затем заканчиваю. Теперь, когда я компилирую проект без каких-либо изменений в том, что генерирует VS, я получаю.
LINK: фатальная ошибка LNK1181: не удается открыть входной файл"■/.параметр obj"
У меня также есть VS 2008 установить на той же машине. Я следую тем же шагам, и он компилируется. Что я делаю не так?
редактировать Хорошо, я обнаружил, что это ошибка связана со старой версией используемого компоновщика. Не знаю почему. В VS2010, каталоги проекта устанавливаются иначе, чем в VS2008. Как только я это выясню, возможно, я смогу решить свою проблему.
Ну, прошло некоторое время с момента публикации этих вопросов. Некоторое время назад я придумал обходной путь, поэтому теперь я собираюсь ответить на него сам. Но если у вас есть какие-либо лучшие идеи или дополнительная информация, другие могут извлечь выгоду, пожалуйста, напишите.
Я обнаружил, что после создания моего проекта c++ мне нужно удалить " Microsoft.СРР.С Win32.User " property sheets. Если нет, то я получаю странную ошибку выше, но если я удаляю их, простой проект компилируется нормально. Исключать их.
- Выберите Вид - >Другие Окна - >Менеджер Свойств
- разверните группу свойств (название проекта)
- разверните все конфигурации (мои - "Debug|Win32" и "Release|Win32")
- Multi-выберите все " Microsoft.СРР.С Win32.User " листы свойств (по одному под каждой конфигурацией)
- удалить
Visual Studio 2012-LINK: неустранимая ошибка LNK1181: не удается открыть входной файл"■/.параметр obj" Я использую VS 2012.
я отследил это немного больше. Для меня это не происходит, когда я пытаюсь построить x64-разрядную версию моего приложения. Я обнаружил, что мой проект .vcxproj имеет "условие ImportGroup", которое выглядит следующим образом:
у меня также есть один для моей сборки x64, который выглядит так:
Я взглянул на файлы:
разница в том, что каждый из них отличается. x64 в основном пуст, а Win32 имеет три пути в нем.
Я обнаружил, что удаление путь заставляет эту проблему уйти. Я смотрю глубже на этот путь, чтобы увидеть, если что-то выскочит на меня, но я думал, что передам его, если кто-то еще может найти, что не так этот путь.
Я тоже столкнулся с той же проблемой при компиляции проекта VC++ в Visual Studio 2017. Компилятор пожаловался на следующее.
LINK : fatal error LNK1181: cannot open input file " ■/.obj"
при анализе проблемы обнаружено, что проект "свойства конфигурации-каталоги VC++ - исполняемые каталоги", как показано ниже, содержит путь к папке Microsoft Visual Basic C:\Program Files (x86)\Microsoft Visual Studio\VB98 который имеет свой собственный link.exe .
ошибка компоновщика произошла из-за к тому, что Visual Studio вызывала компоновщик Visual Basic, а не компоновщик Visual C++!
это произошло потому, что путь к компоновщику Visual Basic указан первый в приведенном выше диалоговом окне и, следовательно, Visual Studio столкнулись с компоновщиком Visual Basic.exe сначала при прохождении пути к исполняемым каталогам.
Эта ошибка возникает, когда компоновщику не удается открыть файл для чтения или записи. Ниже перечислены две наиболее распространенные причины этой проблемы.
Программа уже запущена или загружена в отладчике, и
пути к библиотеке неверны или не заключены в двойные кавычки.
Существует множество других возможных причин этой ошибки. Чтобы сократить их, сначала проверьте Тип файла. Затем используйте следующие разделы для выявления и исправления конкретной проблемы.
Другие распространенные проблемы
Библиотеки в проектах из сетевых или других источников
При построении проекта, скопированного с другого компьютера, расположения установки библиотеки могут отличаться. Для сборок из командной строки убедитесь, что для сборки правильно заданы пути к переменной среды LIB и библиотеке. в Visual Studio можно просмотреть и изменить текущие пути к библиотекам, заданные на страницах свойств проекта. на странице VC++ каталоги выберите элемент управления "раскрывающийся список" для свойства каталоги библиотек , а затем нажмите кнопку изменить. В разделе вычисленное значение диалогового окна каталоги библиотек перечислены текущие пути поиска файлов библиотек. Обновите эти пути, чтобы они указывали на локальные библиотеки.
Windows библиотеки, например kernel32. lib
Если файл, который не удается открыть, является одним из стандартных файлов библиотеки, предоставляемых корпорацией Майкрософт, например kernel32. lib, может возникнуть ошибка конфигурации проекта или ошибка установки. убедитесь, что Windows SDK установлен. если для проекта требуются другие библиотеки майкрософт, такие как MFC, убедитесь, что компоненты MFC также установлены установщиком Visual Studio. Вы можете снова запустить установщик, чтобы добавить дополнительные компоненты в любое время. Дополнительные сведения см. в Изменение Visual Studio. Используйте вкладку отдельные компоненты в установщике, чтобы выбрать конкретные библиотеки и пакеты SDK.
Не удается открыть файл библиотеки Майкрософт
Слишком большие файлы
Эта ошибка может возникать из-за слишком большого размера файла. Библиотеки или объектные файлы, размер которых превышает гигабайт, может вызвать проблемы для 32-разрядного компоновщика. Возможным исправлением этой проблемы является использование 64-разрядного набора инструментов. Дополнительные сведения о том, как использовать 64-разрядный набор средств в командной строке, см. в разделе как включить 64-разрядный Visual C++ набор инструментов в командной строке. сведения о том, как использовать 64-разрядный набор инструментов в интегрированной среде разработки, см. в разделе использование MSBuild с 64-разрядным компилятором и инструментами. также см. статью Stack Overflow post: как сделать Visual Studio использовать собственную цепочки инструментов amd64.
Приложение заблокировано антивирусным сканированием
Антивирусные программы часто временно блокируют доступ к вновь созданным файлам, особенно .exe и .dll исполняемые файлы. Чтобы устранить эту проблему, попробуйте исключить каталоги сборки проекта из антивирусного сканера.
Не удается открыть приложение или его PDB-файл
Параллельная синхронизация сборок
если вы используете параллельный вариант сборки, Visual Studio мог заблокировать файл в другом потоке. Чтобы устранить эту проблему, убедитесь, что один и тот же объект кода или библиотека не встроены в несколько проектов. Используйте зависимости сборки или ссылки проекта, чтобы выбрать в проекте созданные двоичные файлы.
Слишком длинные пути
Эта ошибка может появиться, когда путь к файлу расширяется до 260 символов. При необходимости измените структуру каталогов или Сократите имена папок и файлов, чтобы сократить пути.
Другие решения
Хорошо, у нас наконец-то есть реальный ответ на эту обобщенную проблему, а не на опечатку ОП, если это тоже не разблокирует вас.
Актуальная проблема (перспектива «черного ящика»): автоматически заполненные разрывы записей «Build directory» для проектов внутри пустых каталогов. Qt Creator фактически запрещает вам и запрещает использовать пробелы при создании новых проектов. Вы все еще можете закрыть новый проект и переименовать его, чтобы добавить пробел, и Qt Creator изящно с этим справится. Если вы скопируете каталог сборки, даже с пробелами в нем, и вставите его в поле, заменяющее сломанный автоматически сгенерированный путь (у меня были относительные пути), тогда JOM начнет работать правильно, так как QMake не генерирует никаких ошибок. Я не могу говорить за другие инструменты Make.
Это должно разблокировать вас, если это не было простой проблемой для удаления старых папок, сгенерированных QMAKE, что является наиболее распространенной проблемой, с которой люди сталкиваются с этой конкретной ошибкой при разработке в Qt Creator.
Проблема была решена.
Проблема была, когда создаешь новый проект ( GUI или же Console ), все исходные файлы, принадлежащие этому новому проекту, имеют неправильное расширение, например: main.cp , но правильное расширение должно быть ex: main.cpp ,
И при изменении всех исходных файлов расширение от .cp в .cpp работал нормально.
Или измените расширение исходного файла по умолчанию с [Инструменты -> Опция -> C ++].
хмм Если я правильно помню, когда сталкивался с подобными проблемами, используя вашу аналогичную настройку (QtCreator и Windows) под управлением QMAKE & Перестройка проекта снова помогла мне решить эту ошибку компоновщика.
Бежать Clean а также qMake а также rebuild ,
Мне нравится эта проблема, и это помогло мне.
Мне удалось устранить ряд ошибок которые я писал в теме.
Но теперь "вываливается" другая ошибка: 1>LINK : fatal error LNK1104: не удается открыть файл "Pr1.lib"
Пробывал подключать *.lib вот так:
Visual studio ошибка 2 error lnk1104: не удается открыть файл 'kernel32.lib'
Я удалил visual studio express, и установил visual studio profissional. И при сборке простой.
Error LNK1104: не удается открыть файл "kernel32.lib"
В VS 2013 выходит такая ошибка Ошибка 1 error LNK1104: не удается открыть файл.
Fatal error LNK1104: не удается открыть файл "ucrt.lib"
Вылетает ошибка LINK : fatal error LNK1104: не удается открыть файл "ucrt.lib" при компиляции.
не удается открыть входной файл "libMinHook.x64.md.140_xp.lib"
помогите решить проблему не может открыть либ или что .
Я указывал в свойствах проекта как описано в теме, но при этом у меня появляются ошибки которые я устранил, посмотри в этой теме
Устранил ошибки которые в теме. И появилась ошибка: 1>LINK : fatal error LNK1104: не удается открыть файл "Pr1.lib".
Когда пытаюсь устранить ошибку с *.lib, путем добавления путей в проекте в св-вах, возникают опять ошибки.
Что не понятно? Я объясню, спрашивай
1> Для всех выходных данных обновления не требуется.
1>Link:
1> Создается библиотека C:\Users\DNS\Documents\Visual Studio 2005\Projects\Pr1\Debug\Pr1.lib и объект C:\Users\DNS\Documents\Visual Studio 2005\Projects\Pr1\Debug\Pr1.exp
1>Pr1.exp : warning LNK4070: директива /OUT:HAL_SCReader.dll в .EXP отличается от имени выходного файла "C:\Users\DNS\Documents\Visual Studio 2005\Projects\Pr1\Debug\Pr1.exe"; директива игнорируется
1>C:\Users\DNS\Documents\Visual Studio 2005\Projects\Pr1\Debug\Pr1.exe : warning LNK4086: точка входа "_mainCRTStartup" не является __stdcall с аргументами из 12 байт; образ нельзя запустить
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _protWriteEx в функции _crInit
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardDisconnect@8 в функции _crInit
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardConnectA@24 в функции _crInit
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardEstablishContext@16 в функции _crInit
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _cmnMemSet в функции _crInit
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _bin2hex в функции _crOpenSession
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardStatusA@28 в функции _crOpenSession
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardReconnect@20 в функции _crOpenSession
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardTransmit@28 в функции __crAPDU
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _cmnMemCopy в функции __crAPDU
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardReleaseContext@4 в функции _crDeinit
1>HAL_SCReader.obj : error LNK2019: ссылка на неразрешенный внешний символ _SCardCancel@4 в функции _crDeinit
1>C:\Users\DNS\Documents\Visual Studio 2005\Projects\Pr1\Debug\Pr1.exe : fatal error LNK1120: 12 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.89
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Неправильные разрешения для файла
Эта ошибка может возникать, если у вас недостаточно разрешений для доступа к файлу filename. Это может произойти, если для доступа к файлам библиотеки в защищенных системных каталогах используется обычная учетная запись пользователя. Или, если вы используете файлы, скопированные с других пользователей, у которых все еще есть исходный набор разрешений. Чтобы устранить эту проблему, переместите файл в каталог проекта с возможностью записи. Если перемещенный файл имеет недоступные разрешения, выполните команду takeown.exe в окне командной строки администратора, чтобы стать владельцем файла.
Библиотеки vcruntime с отслеживанием версий
Справка, моей проблемы нет в списке!
Компоновщик не может произвести запись в filename . Файл используется или его дескриптор заблокирован другим процессом либо у вас нет разрешения на запись для этого файла, каталога или сетевой папки, в которой находится файл. эта ошибка часто вызывается временным условием, например блокировкой, удерживаемой антивирусной программой, процессом индексирования поиска файлов или задержкой освобождения блокировки, удерживаемой системой сборки Visual Studio.
Чтобы устранить эту проблему, убедитесь, что дескриптор файла filename не заблокирован и у вас есть разрешение на запись в данный файл. Если это исполняемый файл, убедитесь, что он не запущен на исполнение.
вы можете использовать служебные программы Windows SysInternals или обозреватель процессов , чтобы определить, на filename каком процессе выполняется блокировка файла. С помощью программы Process Explorer можно также снимать блокировку дескрипторов открытых файлов. Сведения об использовании этих программ см. в поставляемых с ними файлах справки.
Если файл заблокирован антивирусной программой, для устранения проблемы исключите выходные каталоги сборки из автоматической проверки антивирусной программой. Программы проверки на вирусы часто запускаются при создании в системе новых файлов и блокируют эти файлы на время проверки. Сведения о порядке отключения проверки определенных каталогов см. в документации антивирусной программы.
Если файл заблокирован службой индексирования поиска, для устранения этой проблемы отключите автоматическое индексирование выходных каталогов сборки. Дополнительные сведения см. в документации службы индексирования. чтобы изменить службу индексирования Windows поиска, используйте параметры индексирования в панель управленияеWindows. дополнительные сведения см. в разделе индексирование поиска в Windows 10: часто задаваемые вопросы.
Если процесс сборки не может перезаписать исполняемый файл, возможно, он заблокирован программой Проводник. если служба прикладного программного интерфейса была отключена, проводник может хранить блокировку исполняемого файла в течение длительного времени. Чтобы устранить эту проблему, запустите Services. msc и откройте диалоговое окно " свойства " для службы " взаимодействие приложений ". Измените Тип запуска с " отключено " на " вручную".
Qt creator работал хорошо, но внезапно показывает проблему error: LNK1181: cannot open input file 'debug\main.obj' ,
Эта проблема проявляется всегда с любым типом приложения либо GUI или же console ,
Я удалил Qt и установил снова, но проблема все еще существует.
Я ничего не делал в настройках создателя Qt, оставил настройки по умолчанию.
Следующее приложение простое консольное приложение возникает та же проблема в нем.
Заметка: Я использую Qt 5.1.1 для 32-битной Windows (VS 2010, OpenGL).
Библиотеки для розничной торговли, отладки или конкретной платформы
Эта ошибка может возникнуть при первой сборке для новой целевой платформы или конфигурации, например в розничной торговле или ARM64. в интегрированной среде разработки проверьте, установлены ли набор инструментов платформы и Windows SDK версии , указанной на странице свойств общие . также убедитесь, что необходимые библиотеки доступны в каталогах библиотек , указанных на странице свойств каталоги VC++. Проверьте свойства каждой конфигурации, например Debug, Retail, x86 или ARM64. Если одна сборка работает, но другая нет, Сравните параметры обоих параметров. Установите все отсутствующие необходимые инструменты и библиотеки.
Проблемы в переменной среды TMP
Если имя файла LNKnnn, то это имя файла, созданного компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Кроме того, для переменной среды TMP может быть задано несколько каталогов. Для переменной среды TMP должен быть указан только один путь к каталогу.
Не удается открыть сторонний файл библиотеки
Существует несколько распространенных причин этой проблемы.
Путь к файлу библиотеки может быть неверным или не заключен в двойные кавычки. Или, возможно, вы не указали его для компоновщика.
Возможно, вы установили 32-разрядную версию библиотеки, но при этом собираетесь на 64 бит или наоборот.
Библиотека может зависеть от других библиотек, которые не установлены.
Может потребоваться предоставить каталог библиотеки, переопределяющий каталог стандартной библиотеки. В командной строке используйте параметр /libpath . В интегрированной среде разработки используйте свойство Дополнительные каталоги библиотек на странице свойств " Общие" компоновщика > свойств > конфигурации для проекта.
Убедитесь, что установлены все версии библиотеки, необходимые для создаваемых конфигураций. воспользуйтесь программой управления пакетами vcpkg , чтобы автоматизировать установку и настройку для многих распространенных библиотек. По возможности лучше создавать собственные копии сторонних библиотек. Затем вы убедитесь, что все локальные зависимости библиотек созданы для тех же конфигураций, что и ваш проект.
обновленные библиотеки Windows SDK
Решение
Эта проблема также возникает, если путь вашего проекта (имя любой папки) содержит пробелы.
Недостаточно места на диске
Эта ошибка может возникать, если на диске недостаточно места. Компоновщик использует временные файлы в нескольких ситуациях. Даже если на диске достаточно места, большие ссылки могут выпустить или фрагментировать свободное место на диске. Рассмотрите возможность использования параметра /OPT (оптимизация) . выполнение транзитного исключения COMDAT считывает все объектные файлы несколько раз.
Не удается открыть файл "К:\програм.ОБЖ"
Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /libpath . Также проверьте пути, указанные в переменной среды LIB, и пути, указанные в командной строке. Обязательно используйте двойные кавычки для всех путей, содержащих пробелы.
Чтобы устранить эту проблему в интегрированной среде разработки, при необходимости добавьте двойные кавычки для следующих свойств проекта:
свойство каталоги библиотеки на странице свойств конфигурации > VC++ каталоги
Свойство " Дополнительные каталоги библиотек " на странице свойств " Общие" компоновщика > свойств > конфигурации
Свойство Дополнительные зависимости на странице свойств входных данных компоновщика > свойств > конфигурации .
Приложение выполняется или загружается в отладчике
Если filename — имя исполняемого файла или связанный с ним PDB-файл, см. раздел Если приложение уже запущено. Затем проверьте, загружен ли он в отладчик. Чтобы устранить эту проблему, перед повторным созданием программы закройте программу и выгрузите ее из отладчика. Если приложение открыто в другой программе, например в редакторе ресурсов, закройте его. Если программа не отвечает, может потребоваться завершить процесс с помощью диспетчера задач. Также может потребоваться закрыть и перезапустить Visual Studio.
Проблемы с путями или именами файлов
Не удается открыть файл, созданный проектом
Эта ошибка может возникать, если файл filename еще не существует, когда компоновщик пытается получить к нему доступ. Это может произойти, когда один проект зависит от другого в решении, но проекты создаются в неправильном порядке. Чтобы устранить эту проблему, убедитесь, что ссылки проекта заданы в проекте, который использует этот файл. После этого отсутствующий файл будет создан до того, как он потребуется. дополнительные сведения см. в статьях добавление ссылок в проекты Visual Studio C++ и управление ссылками в проекте.
Библиотека vccorlib. lib
Дополнительные зависимости, указанные в интегрированной среде разработки
При указании отдельных библиотек в свойстве Дополнительные зависимости используйте пробелы для разделения имен библиотек. Не используйте запятые или точки с запятой. При использовании пункта меню Правка для открытия диалогового окна Дополнительные зависимости используйте символы новой строки для разделения имен, а не запятых, точек с запятой или пробелов. Также используйте символы новой строки при указании путей к библиотекам в папках библиотек и дополнительных каталогах библиотек .
Читайте также: