Lnk1104 не удается открыть файл libc lib

Обновлено: 07.07.2024

Я создал новый проект на C ++ в Visual Studio 2008. Код еще не написан; Изменились только настройки проекта.

Когда я компилирую проект, я получаю следующую фатальную ошибку:

фатальная ошибка LNK1104: невозможно открыть файл 'C: \ Program.obj'

Эта конкретная проблема вызвана указанием зависимости для файла lib, в пути которого были пробелы. Для корректной компиляции проекта путь должен быть заключен в кавычки.

На вкладке Configuration Properties -> Linker -> Input свойств проекта есть свойство Additional Dependencies . Эта проблема была устранена путем изменения этого свойства с:

C: \ Program Files \ software sdk \ lib \ library.lib

"C: \ Program Files \ sofware sdk \ lib \ library.lib"

Где я добавил цитаты.

Боже, ты только что повесил двухдневную погоню за ошибками на 30- У меня такая же проблема. Если ваш компоновщик правильный, но каталог lib установлен неправильно, может возникнуть та же ошибка. Попробуйте заглянуть в Свойства конфигурации -> Каталоги VC ++ -> Каталоги библиотек, чтобы убедиться, что вы правильно установили библиотеку. Иногда папка lib состоит из папок x86 и x64. Вы должны установить его на один из них (в зависимости от вашего компилятора), а не на папку, содержащую оба. Не забудьте поставить точку с запятой после "C:\Program Files\sofware sdk\lib\library.lib" . Отсутствие a ; также приведет к неправильной компиляции проекта. Была эта проблема при попытке создать OpenCV с помощью Visual Studio 2005 (в Windows 8.1) . и она ее решила. Большой! Я попробовал, но у меня ничего не вышло. "Qt5Xmld.lib"; "Qt5XmlPatternsd.lib"; "Qt5Cored.lib";% (AdditionalDependencies) -Что мне изменить?

Это может произойти, если файл все еще работает.

: -1: ошибка: LNK1104: не удается открыть файл 'debug \ ****. Exe'

Я получаю это из-за того, что MS Security Essentials блокирует файл. да, закрыл предыдущее окно консоли, и вдруг библиотека могла быть прочитана.

Проблема исчезла для меня после закрытия и повторного открытия Visual Studio. Не уверен, почему возникла проблема, но, возможно, стоит попробовать.

Это было на VS 2013 Ultimate, Windows 8.1.

ах, Microsoft . Наша первая попытка всегда должна быть закрыта и снова открыта (или выключена и включена) - несколько загадочных ошибок исчезнут, когда мы сделаем это . Мне так стыдно, что это решение может решить мою проблему. Теперь я больше не могу выходить на улицу, чтобы встретиться с друзьями и семьей.

Также убедитесь, что у вас не включено: Свойства конфигурации -> C / C ++ -> Препроцессор -> Предварительная обработка в файл .

В моем случае это тоже была проблема, но что мне делать, если я действительно хочу включить этот флаг (чтобы просмотреть файл Prepossessment)? У вас есть обходные пути: как вывести предварительно обработанный код и скомпилировать его (Visual Studio) и здесь: Компиляция проекта (VS 2008) с аргументом / p (предварительная обработка в файл) не компилируется . Но, по сути, это вариант компилятора, поэтому он подойдет либо, но не обоим сразу.

У меня была такая же проблема. Она вызывалась знаком "," в имени папки дополнительного пути к библиотеке. Решалась изменением пути к дополнительной библиотеке.

Моя проблема заключалась в отсутствии .lib расширения, я просто связывал его, mylib и VS решил его найти mylib.obj .

В моем случае речь шла о неверно направленной ссылке. Project ссылался на результат другого проекта, но последний не выводил файл, в котором искал первый.

Решение 1 (для моего случая): перезапустите процесс Windows Explorer (да, файловый менеджер Windows).

  1. Закройте Visual Studio. Выход из Windows
  2. Войдите, снова откройте Visual Studio
  3. Стройте как обычно. Теперь он собирается и может получить доступ к проблемному файлу.

Я предполагаю, что иногда файловая система или тот, кто ее контролирует, теряются со своими разрешениями. Перед перезапуском сеанса Windows пытался убить msbuild32.exe процессы зомби , перезапустить визуальную студию, не проверять, даже показывая файл проблемы. Нет проблем с конфигурацией сборки. Это случается время от времени. Что-то внутреннее в Windows не исправляется, требуется перезагрузка.

У меня была эта проблема с VS2019 . это исправило . удивительно, что ошибки сохраняются. thx

У меня была такая же ошибка, только с пакетом Nuget, который я установил (тот, который не является только заголовком), а затем попытался удалить.
Что было неправильно для меня, так это то, что я все еще включал заголовок для пакета, который я только что удалил, в одном из моих файлов .cpp (довольно глупо, да).
Я даже удалил ссылки на дополнительные каталоги библиотеки Project -> Properties -> Linker -> General , но, конечно, безрезультатно, поскольку я все еще пытался ссылаться на несуществующий заголовок.

У меня была такая же проблема, но решения для моего случая в ответах нет. Моя антивирусная программа (AVG) определила файл MyProg.exe как вирус и поместила его в «хранилище вирусов». Вам нужно проверить это хранилище, и если файл там - то просто восстановите его. Мне это помогло.

Для проекта сборки (ProjectName -> Build Dependencies -> Build Customizations -> masm (selected)) установка параметра Generate Preprocessed Source Listing на True вызвала проблему и для меня, очистка настройки устранила ее. VS2013 здесь.

У меня та же проблема с компоновщиком, который жалуется на отсутствие основного исполняемого файла. Это произошло во время переноса нашего решения на новую Visual Studio 2013 . Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и решение) заключалась в отсутствии файла app.config в папке решения. Потребовался день, чтобы понять это :(, поскольку журнал вывода не очень помог.

Я отвечаю, потому что не вижу этого конкретного решения в списке других.

По-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которой зависит один из моих проектов, и удалял ее. Даже после исключения каталога, в котором находится DLL, такое же поведение продолжалось до тех пор, пока я не перезагрузил свой компьютер.

В моем случае я заменил файлы математической библиотеки из предыдущего курса Game Engine Graphics на GLM. Проблема заключалась в том, что я не добавил их в проект в обозревателе решений Visual Studio (даже если они были в репозитории проекта).

Надеюсь, этот ответ поможет кому-то в нужде.

Я решил его добавление в существующий проект к моему решению , которое я забыл добавить в первый раз.

У меня была такая же ошибка:

Это было вызвано ; в конце. Если у вас несколько библиотек, их следует разделять пустым пространством (пробел), без запятой или точкой с запятой!

Так что не используйте ; или что-либо еще при перечислении библиотек в Project properties >> Configuration Properties >> Linker >> Input

Я пробовал вышеуказанное решение, но у меня не получилось. Поэтому я переименовал exe и перестроил решение. Меня устраивает.

У меня была эта точная ошибка при создании VC ++ DLL в Visual Studio 2019:

LNK1104: невозможно открыть файл 'C: \ Program.obj'

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

Программа уже запущена или загружена в отладчике, и

пути к библиотеке неверны или не заключены в двойные кавычки.

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

Не удается открыть приложение или его 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++ и управление ссылками в проекте.

Не удается открыть файл "C: \ Program. obj"

Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /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

Если имя файла LNK nnn, то это имя файла, созданного компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Кроме того, для переменной среды TMP может быть задано несколько каталогов. Для переменной среды TMP должен быть указан только один путь к каталогу.

Справка, моей проблемы нет в списке!

Как решить проблему, из-за которой ошибка LNK1104 не может открыть файл * .lib при компиляции программы C ++ в среде win10 + VS2017 + WDK

После вчерашней установки VS2017 + WDK на компьютер я столкнулся с невероятной проблемой: собирается ли он скомпилировать какой-либо проект, включая все ранее полностью нормальные проекты, он выдаст похожую ошибку:

Для другого проекта содержимое приглашения может не совпадать, но есть файл библиотеки MFC (например, mfc140d.lib и т. Д.), Который не может быть найден. Эти проекты были явно в порядке, и не было никаких проблем. Это странно .

Поэтому я отправился в Baidu, Google, и сделал множество разных попыток. Многие люди говорили, что хотят изменить конфигурацию проекта и увеличить путь включения файла библиотеки и путь включения файла заголовка. Тем не менее, я был в порядке с этими проектами раньше. Почему эта проблема возникла коллективно? Конечно, нет проблем с настройкой определенного проекта, поэтому продолжайте поиск .

Интеллектуальная рекомендация


Michael.W Поговорите о Hyperledger Fabric. Проблема 20 - Подробная индивидуальная сортировка узла с пятью порядками с исходным кодом для чтения.

Michael.W Поговорите о Hyperledger Fabric. Проблема 20 - Подробная индивидуальная сортировка узла с пятью порядками с исходным кодом чтения Fabric Файл исходного кода одиночного режима находится в ord.


Мяу Пасс Матрица SDUT

Мяу Пасс Матрица SDUT Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description Лянцзян получил матрицу, но эта матрица была особенно уродливой, и Лянцзян испытал отвращение. Чт.


Гессенская легкая двоичная структура удаленного вызова

Hessian - это легкая двоичная структура удаленного вызова, официальный адрес документа, в основном он включает протокол удаленного вызова Hessian, протокол сериализации Hessian, прокси-сервер клиента .


TCP Pasket и распаковка и Нетти Solutions

Основные введение TCP является ориентированным на соединение, обеспечивая высокую надежность услуг. На обоих концах (клиенты и терминалы сервера) должны иметь один или более гнезда, так что передающий.

enter image description here

Проверьте каталоги VC++, в VS 2010 их можно найти в свойствах вашего проекта. Проверьте ли $(WindowsSdkDir)\lib входит в список каталогов, если нет, вручную добавьте его. Если вы строите для платформы X64, вы должны выбрать X64 из" платформы " ComboBox и убедитесь, что $(WindowsSdkDir)\lib\x64 входит в список каталогов.

измените набор инструментов платформы на: "Windows7.1SDK " в разделе свойства проекта - >свойства конфигурации - >общие

убедитесь, что у вас есть в каталогах VC++ (щелкните правой кнопкой мыши проект, выберите страницу свойств),

  • Включить Каталоги: $(IncludePath)
  • каталоги библиотеки элементов списка: $(LibraryPath)

только для пользователей командной строки (т. е. - makefile):

  1. при установке VC++ Express, это только 32-разрядный. Итак, все идет в C:\Program Файлы (x86).
  2. затем вы решаете обновить до 64-разрядных capabillities. Итак, вы устанавливаете SDK. Но он 64-битный. Итак, все идет в C:\Program Файлы.

(Не пропустите " v7.0A " to " v7.- Перемены тоже.)

Я получил аналогичную ошибку, проблема остановилась, когда я проверил список "Компоновщик - > ввод - > дополнительные зависимости" в свойствах проекта. Мне не хватало половины двоеточия"; "непосредственно перед" %(AdditionalDependencies)". У меня также была одна и та же запись дважды. Этот список следует редактировать отдельно для отладки и выпуска.

добавить lib путь WindowsSdks в проекте - >свойства - >свойства конфигурации - > каталоги VC++ -> каталоги библиотек.

Я добавил следующий путь и ошибок::

C:\Program файлы (x86)\Microsoft SDKs\Windows\v7.1A \ Lib;

У меня была другая проблема в Windows 10 с Visual Studio 2017, но с теми же эффектами. Я думаю, что мои проблемы сводились к тому, что VS был установлен на диск, отличный от "C:\". Я решил проблему, переустановив Windows 10 SDK

сначала мне пришлось удалить Windows SDK (было установлено две версии). Затем запустил исполняемый файл. После установки запустите visual studio, и он работал нормально.

enter image description here

решение Джеро сработало для меня.
В Visual Studios 2012 выполните следующие действия.
- Перейдите в Обозреватель решений
- Правой кнопкой мыши на вашем проекте
- Перейти к свойствам
- Свойства Конфигурации -> Общие
- Набор Инструментов Платформы ->изменить на Windows7.1SDK

Если вышеуказанное решение не работает, проверьте, есть ли у вас $(LibraryPath) в свойствах - > каталоги VC++ - >каталоги библиотеки. Если вы упускаете его, попробуйте добавить.

ОС: Win10, Visual Studio 2015

решение : Перейдите в Панель управления - - - > удалить программу - - - MSvisual studio - - - - > изменить - - - - >организовать = ремонт

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

сегодня в Visual Studio 2017 у меня была та же проблема.

причиной в моем случае оказалась плохая настройка среды в NETFXSDKDir ( NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK.6.1 ). Это должно быть вместо NETFXSDKDir=C:\Program Files (x86)\Windows Kits\Lib.0.10240.0\um\x86 . В частности, как установлено в этом пакетном файле (мой каталог фактически имеет 4 разных файла) для командной строки для VS2017:

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

. вместо этого для моего конкретного приложения командной строки C++ я просто добавил явный текст пути: ;C:\Program Files (x86)\Windows Kits\Lib.0.10240.0\um\x86 для общей строки в "каталогах библиотеки", как это: $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;C:\Program Files (x86)\Windows Kits\Lib.0.10240.0\um\x86 . (Щелкните правой кнопкой мыши проект, свойства → свойства конфигурации → каталоги VC++ → каталоги библиотеки.), Который разрешил мою "фатальную ошибку LNK1104: не удается открыть файл" kernel32.ошибка Либ'". Я нашел этот намек в этот вопрос GitHub.

Примечание это воспроизводимо в визуальном Studio 2017 Enterprise 2017 версии 15.1 (26403.0) даже после успешного "ремонта" установки. при создании нового консольного приложения Visual C++ Win32 и попытке компиляции.

фактически, если не создано пустое приложение, шаблон по умолчанию также включает ссылку на <SDKDDKVer.h> и с этим я получаю эту дополнительную ошибку: Error (active) E1696 cannot open source file "SDKDDKVer.h" . Так Что Я создал пустой проект c++.

на Visual Studio 2017, Я пошел к Свойства Проекта ->Свойства Конфигурации ->общие, отобранных Все Платформы (1), затем выберите выпадающий (2) под версия Windows SDK и обновлен с 10.0.14393.0 на тот, который был установлен (3). Для меня это было 10.0.15063.0.

enter image description here

дополнительная информация: это исправило ошибку в моем случае, потому что версия Windows SDK помогает VS выбрать правильные пути. каталоги VC++ -> Библиотека-Каталоги -> редактировать ->макрос -> показывает, что макрос $(WindowsSDK_LibraryPath_x86) имеет путь с номером версии выше.

Я просто встречался и решил эту проблему сам. Моя проблема немного другая. Я использую visual studio в Windows 10. Когда я создаю проект, Target Platform Version было автоматически установлено значение 10.0.15063.0 . Но нет kernel32.lib для этой версии SDK также нет других необходимых файлов заголовков и файлов lib. Поэтому я изменил Target Platform Version до 8.1 . И это сработало.

Читайте также: