Не удается открыть файл lib
Как решить проблему, из-за которой ошибка LNK1104 не может открыть файл * .lib при компиляции программы C ++ в среде win10 + VS2017 + WDK
После вчерашней установки VS2017 + WDK на компьютер я столкнулся с невероятной проблемой: собирается ли он скомпилировать какой-либо проект, включая все ранее полностью нормальные проекты, он выдаст похожую ошибку:
Для другого проекта содержимое приглашения может не совпадать, но есть файл библиотеки MFC (например, mfc140d.lib и т. Д.), Который не может быть найден. Эти проекты были явно в порядке, и не было никаких проблем. Это странно .
Поэтому я отправился в Baidu, Google, и сделал множество разных попыток. Многие люди говорили, что хотят изменить конфигурацию проекта и увеличить путь включения файла библиотеки и путь включения файла заголовка. Тем не менее, я был в порядке с этими проектами раньше. Почему эта проблема возникла коллективно? Конечно, нет проблем с настройкой определенного проекта, поэтому продолжайте поиск .
Интеллектуальная рекомендация
WECHAT MILLY WAY POINT CAMENT CARD - СОВРЕМЕННЫЕ СТРАНИЦЫ ПРОГЛЯЮТНОЕ ЗНАЧЕНИЕ (Запрос)
WECHAT Small Pass Pass Value и значение приобретения: 1. Установите способ настройки идентификатора идентифицирует значение параметра, передаваемое после прыжка; 2, используя метод Data-XXXX для идент.
Текущая задача Узел больше экземпляров
[Linux] Программирование сетевых сокетов UDP
Что такое протокол UDP Протокол UDP называетсяПротокол пользовательских датаграмм UDP - протокол транспортного уровня Без установления соединения, ненадежная передача, ориентированная на дейтаграмму П.
Основная идея обработки больших данных - разделяй и властвуй
Разделяй и властвуй - «разделяй и властвуй» Как мы все знаем, компьютеры очень быстрые и используются людьми. Однако независимо от того, насколько быстрым является компьютер, способность о.
У меня проблемы с компиляцией базовой программы openGL на VS 2012. Я получаю ошибку сборки после компиляции, давая мне:
Я следовал инструкциям, данным мне в документации для GLEW.
Я также добавил glew32.dll в папку Debug в папке проекта вместе с исполняемым файлом. Пока я продолжаю получать эту ошибку.
Если вам нужно более подробное разъяснение шагов, которые я сделал, пожалуйста, не стесняйтесь спрашивать
Решение
Честно говоря, нет реальной пользы от использования DLL-версии glew (если не считать уменьшенного размера исполняемого файла, но это вряд ли имеет значение на современных ПК с Windows).
Это не значит, что вы можете просто вставить новую версию DLL в свое приложение и использовать расширения, которые вы никогда раньше не использовали. Точно так же исправления ошибок настолько редки / не нужны в библиотеке, которая в основном просто анализирует спецификацию расширения. файлы, которые используют DLL как средство исправления ошибок загрузки расширений в поставляемом программном обеспечении, также не практичны. Статическая ссылка на glew (это означает glew32s.lib ) имеет гораздо больше смысла в долгосрочной перспективе.
Библиотека статических ссылок также более переносима в Windows, она будет работать с MSVC и MinGW (тогда как библиотека DLL работает только с MSVC). Ссылка против glew32s и поместите это в любой каталог, который вы решили использовать для дополнительных библиотечных зависимостей.
Вот пример конфигурации решения для проекта, который я написал, который использует glew. Я установил соглашение для этого конкретного программного обеспечения, где зависимости времени компиляции хранятся в platform/<Subsystem> , Таким образом, у меня есть glew32s.lib (32-разрядный) и glew64s.lib (64-разрядный) в ./Epsilon/platform/OpenGL/glew<32|64>s.lib
Другие решения
Это случилось со мной в этой ситуации, я очищаю решение и собираю его снова, затем возникает много ошибок, таких как LNK1104.
После попытки перезапустить IIS я успешно строю решение без ошибок LNK1104. Я не знаю почему, но перезапуск IIS занимает гораздо больше времени, чем обычно, поэтому я предполагаю, что что-то используется другим рабочим процессом IIS.
Просто сделайте снимок, чтобы увидеть, происходит ли эта магия на вас.
Шаги по использованию классов из другого проекта (добавление ошибок компоновщика заголовка и решателя)
«Свойства> Linker> Дополнительные каталоги библиотеки». Укажите местоположение создаваемого файла lib.
«Свойства> Линкер> Ввод> Дополнительные зависимости»: Добавьте имя файла lib.
Это похоже на то, что библиотека была указана как зависимость, но компоновщик / дополнительные пути поиска не были установлены для включения каталога, в котором расположена библиотека.
Этот вопрос старый и помечен как решенный, но у меня были похожие симптомы проблемы с совершенно другим решением. Так что на случай, если кто-то еще споткнется здесь:
Оказалось, что, поскольку у меня было 2 проекта под одним решением (dll и exe), порядок построения был смешанным (из окна вывода):
Позавчера удалил VS 2013 Express. Сегодня заметил, что не собираются проекты C++ в VS 2012.
Даже "Hello World".
Ошибка следующая:
LINK : fatal error LNK1104: не удается открыть файл "gdi32.lib"
Позавчера удалил VS 2013 Express. Сегодня заметил, что не собираются проекты C++ в VS 2012.
Даже "Hello World".
Ошибка следующая:
LINK : fatal error LNK1104: не удается открыть файл "gdi32.lib"
Линкер говорит, что не может найти этот файл.
Посмотри, куда установлен SDK. Имеется ли он, имеется ли там проблемный файл.
Если нет - установи SDK. И далее в настройках студии укажи пути к инклюдам,
либам и исполняемым файлам в SDK.
Это необходимо сделать для каждой платформы.
Если с SDK всё в порядке просто проверь вышеуказанные настройки.
Visual Studio SDK или Windows SDK?
Не нашёл у себя вообще gdi32.lib на диске C: через поиск.
И Visual Studio SDK нигде не нашёл.
Скачал и поставил, но опять таки, не могу найти куда он поставился.
Сейчас пробую поставить Windows SDK, но он уж больно тяжёлый для моего соединения с интернет.
Добавлено 07.06.14, 15:29
Так какой тогда SDK нужен?
Установка Visual Studio SDK не помогла.
В папке Windows Kits есть разные библиотеки, но нужной нет.
В папке Windows Kits есть разные библиотеки, но нужной нет.
Скопировал содержимое этих папок с другого компьютера, теперь вроде всё работает.
Проверьте каталоги 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 . И это сработало.
Читайте также: