Lnk1104 не удается открыть файл glut32 lib
Обновлено: 04.07.2024
Я создал новый проект C++ в Visual Studio 2008. Код еще не написан, изменены только настройки проекта.
когда я компилирую проект, я получаю следующую фатальную ошибку:
фатальная ошибка LNK1104: не удается открыть файл 'C:Program.obj'
эта конкретная проблема вызвана указанием зависимости для файла lib, который имел пробелы в своем пути. Путь должен быть окружен кавычками для правильной компиляции проекта.
на Свойства Конфигурации -> Компоновщик -> Ввод вкладка свойств проекта, есть Дополнительные Зависимости собственность. Эта проблема была исправлена путем изменения этого свойства:
C:\Program файлы\программное обеспечение sdk\lib \ библиотека.Либ
" C:\Program файлы\программное обеспечение sdk\lib \ библиотека.lib"
где я добавил кавычки.
Это может произойти, если файл все еще работает.
:-1: ошибка: LNK1104: не удается открыть файл ' debug\****.exe'
проблема ушла для меня после закрытия и повторного открытия Visual Studio. Не знаю, почему возникла проблема, но это может быть стоит попробовать.
Это было на VS 2013 Ultimate, Windows 8.1.
проверьте также, что вы не включили это: свойства конфигурации -> C / C++ - > препроцессор -> предварительная обработка файла.
У меня было то же самое problem.It вызвано символом", " в имени папки дополнительной библиотеки path.It решается путем изменения дополнительного пути к библиотеке.
моя проблема была отсутствует .lib расширение, я просто связывал против mylib и ВС решил искать mylib.obj .
в моем случае это был вопрос неправильной ссылки. Проект ссылался на вывод другого проекта, но последний не выводил файл, где первый искал.
для сборки проекта (название проекта -> построение зависимостей -> сборки настройки -> компилятор MASM (некоторые)), задание Создать Предварительно Обработанный Список Источников до True вызвал проблему и для меня, очистив настройку, исправил ее. VS2013 здесь.
Я отвечаю, потому что я не вижу это конкретное решение, перечисленное кем-либо еще.
по-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которой зависит один из моих проектов, и удалял его. Даже после исключения каталога, где живет DLL, то же самое поведение продолжалось до тех пор, пока я не перезагрузил компьютер.
Проверьте каталоги VC++, в VS 2010 их можно найти в свойствах вашего проекта. Проверьте ли $(WindowsSdkDir)\lib входит в список каталогов, если нет, вручную добавьте его. Если вы строите для платформы X64, вы должны выбрать X64 из" платформы " ComboBox и убедитесь, что $(WindowsSdkDir)\lib\x64 входит в список каталогов.
измените набор инструментов платформы на: "Windows7.1SDK " в разделе свойства проекта - >свойства конфигурации - >общие
убедитесь, что у вас есть в каталогах VC++ (щелкните правой кнопкой мыши проект, выберите страницу свойств),
- Включить Каталоги: $(IncludePath)
- каталоги библиотеки элементов списка: $(LibraryPath)
только для пользователей командной строки (т. е. - makefile):
- при установке VC++ Express, это только 32-разрядный. Итак, все идет в C:\Program Файлы (x86).
- затем вы решаете обновить до 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, и он работал нормально.
решение Джеро сработало для меня.
В 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.
дополнительная информация: это исправило ошибку в моем случае, потому что версия 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 . И это сработало.
Я создал новый проект на 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) -Что мне изменить?Это может произойти, если файл все еще работает.
Я получаю это из-за того, что MS Security Essentials блокирует файл. да, закрыл предыдущее окно консоли, и вдруг библиотека могла быть прочитана.: -1: ошибка: LNK1104: не удается открыть файл 'debug \ ****. Exe'
Проблема исчезла для меня после закрытия и повторного открытия 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).
- Закройте Visual Studio. Выход из Windows
- Войдите, снова откройте Visual Studio
- Стройте как обычно. Теперь он собирается и может получить доступ к проблемному файлу.
Я предполагаю, что иногда файловая система или тот, кто ее контролирует, теряются со своими разрешениями. Перед перезапуском сеанса 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'
ОТВЕТЫ
Ответ 1
Перейдите к свойствам вашего проекта, выберите Linker слева. Добавьте это в " Дополнительные каталоги библиотек":
Ответ 2
Для бедных людей, которые борются с этим, после часа исследований я нашел решение для моей Visual Studio Enterprise 2017:
Сначала давайте найдем, где находится файл вашей библиотеки:
С помощью проводника Windows перейдите в каталог, в котором установлена Visual Studio (по умолчанию: C:\Program Files (x86)\Microsoft Visual Studio), и выполните поиск по msvcrtd.lib.
Я нашел мой, чтобы быть здесь:
Быстрое исправление (только для одного проекта):
Постоянное исправление (для всех проектов)
- Открыть проект
- перейдите к View> Property Manager (это может быть в других окнах)
- Разверните все папки и выберите несколько " Microsoft.cpp.Win32.user " и " Microsoft.cpp.64.user "
-
Щелкните правой кнопкой мыши и перейдите к свойствам
Перейдите в каталог VC++ .
Добавьте путь к каталогам библиотеки по умолчанию
Ответ 3
В некоторых диалоговых окнах свойств в свойствах проекта есть флажок, указывающий "Наследовать от родительских или проектов по умолчанию" . Убедитесь, что флажок флажка Включить и Библиотека отмечен флажком и, конечно, для окна Дополнительные зависимости.
Ответ 4
Я столкнулся с этим вопросом. Файл существовал на моей машине, он был в пути поиска. Я был озадачен, так как результат ошибки действительно бесполезен. В моем случае я включил смягчение Spectre, но не загрузил библиотеки времени выполнения для Spectre. Как только я сделал загрузку, все было в порядке с миром. Я должен был установить это на своих серверах сборки CI, так как эти библиотеки не установлены с VS по умолчанию.
Ответ 5
также стоит проверить, что файл 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 может быть неправильно установлен или эти файлы могут быть удалены случайно.
Ответ 6
Сценарий:
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 . )
Ответ 7
Я решил эту проблему, вам нужно установить все спектры lib. Vistual Studio Installer-> Изменить → Component-> Любой призрак lib. Это решение может быть адаптировано к любому проекту.
Ответ 8
Удаление это решает проблему. Просто публикация здесь как связанная проблема для людей, ищущих решения: После установки WDK VC++ не работает
Ответ 9
Если вы используете VS2017, пожалуйста, прочитайте его. Или просто проигнорируйте этот ответ. Он может быть недействительным для другой версии VS.
Не доверяйте никому, кто сказал вам, чтобы добавить путь к lib.
- [ЛУЧШИЙ] Вам просто нужно установить их через VS_installer (большинству из нас просто нужна версия для x86/x64 ниже)
- 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?
Ответ 10
Я столкнулся с этой проблемой при компиляции примера приложения с использованием VS2017 Надеюсь, это поможет
Ответ 11
Этот ответ был не совсем точным для меня. У меня установлен VS2010 Ultimate, и этот файл не находится в моей папке Visual Studio 10.0\VC. Скорее я нашел его в папке Visual Studio 9.0\VC. Поэтому, если это относится к кому-либо, следуйте указаниям, чтобы изменить Linker, но вместо этого используйте папку Visual Studio 9.0\VC. Это сработало для меня.
Ответ 12
Ответ 13
Для Visual Studio 2017 Перейдите к свойствам вашего проекта, выберите Linker слева. Добавьте это в "Дополнительные библиотечные каталоги":
C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\lib
Ответ 14
Я получил немного другую ошибку
LNK1104 не может открыть файл 'MSVCURTD.lib'
Обратите внимание, что это msvcUrtd (не msvcrtd), но файл не найден в моей системе.
Решил это, установив следующие параметры:
Надеюсь, это поможет.
Ответ 15
В VS2017 (Сообщество/Предприятие /Ultimate/Professional):
Добавьте путь (и) к папке (папкам), которые включают в себя желаемый файл (ы).lib, по следующему пути в VS:
Проект (щелкните правой кнопкой мыши) (в обозревателе решений) → Properties-> Конфигурация Properties-> Linker → General-> Дополнительные каталоги библиотек
Если существует более одного файла ".lib", используйте ';' чтобы разделить их, в противном случае нажмите на поле редактирования, соответствующее "Дополнительные каталоги библиотек", затем нажмите "" в выпадающем меню и добавьте все нужные файлы ".lib" в открывшемся окне один за другим и в удобной для пользователя форме.
Ответ 16
Я столкнулся с этим с помощью 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", поэтому у меня было первое значение перед точкой с запятой.
Ответ 17
Перейдите в Проект → Свойства → C/C++ → Генерация кода → Смягчение последствий → Отключено
Ответ 18
Я включил следующий путь
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-> Дополнительные каталоги
Ответ 19
Для VS 2019 функция смягчения последствий включена по умолчанию. Таким образом, правильным способом решения этой проблемы будет установка VC++ Libs для Spectre.
Но, чтобы быстро решить проблему, вы можете отключить Призрачное смягчение
Project Properties → C/C++ → Code Generation → Spectre Mitigation → Disabled
Ответ 20
Это указывает на то, что Visual Studio не удалось найти каталог lib (Library), который содержит msvcrtd.lib .
ВАЖНО: Этот каталог lib также содержит компоновщики, необходимые во время процесса компиляции.
Итак, все, что вам нужно сделать, это переопределить расположение каталога библиотеки. Вы можете сделать это с помощью переменных среды.
Я обратился к этой публикации StackOverflow за помощью. Согласно опубликованному ответу, переменная среды LIB относится к пути, где расположены библиотеки линкеров. Почему этот метод лучше? Потому что это будет применяться ко всем проектам, а не только к конкретному проекту. Кроме того, вам не нужно ничего загружать. Это просто работает.
Выполните следующие шаги, чтобы достичь этого:
ШАГ-1: Поиск "msvcrtd.lib" в строке поиска.
ШАГ-2: Нажмите "Открыть местоположение файла" (доступно в контекстном меню)
ШАГ-3: Скопируйте адрес каталога из адресной строки.
ШАГ 4: Найдите "Среда" на панели задач и нажмите "Изменить системные переменные среды".
ШАГ-6: В разделе "Системные переменные" нажмите кнопку "Создать. ". Диалог появится.
Читайте также: