Подтвердить что ты не робот

Фатальная ошибка LNK1104: невозможно открыть файл 'kernel32.lib'

Я получаю эту ошибку с тех пор, как установил .NET Framework SDK для 64-битного программирования в своем компиляторе Visual С++ 2010 Express. Я не могу скомпилировать даже простую программу вообще из-за этой единственной ошибки, которую я получаю. Моя платформа - x86. Если это поможет:

enter image description here

Я не знаю, что еще сказать. Я только что загрузил этот компилятор вчера, и он работал нормально. Я хотел перейти с 32-битного программирования на 64-битный, чтобы я мог работать с Assembly, поэтому я загрузил этот SDK. Я искал в Google и даже здесь, в Stackoverflow. Google не очень помог, но я нашел сообщение здесь, похожее на мое, но ответы не оправдали. Кто-нибудь знает, почему эта ошибка возникает и как я могу избавиться от нее?

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

  • При установке VС++ Express это только 32-разрядная версия. Итак, все идет в C:\Program Files (x86).
  • Затем вы решите перейти на 64-битные возможности. Таким образом, вы устанавливаете SDK. Но это 64-бит. Итак, все идет в C:\Program Files.

Вы (как я), вероятно, "настроили" ваш make файл на # 1 выше, через что-то вроде этого:

MS_SDK_BASE_DOS := C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
ENV_SET         := LIB="$(MS_SDK_BASE_DOS)\Lib\x64"

Но теперь вам нужно изменить эту настройку на # 2 выше:

MS_SDK_BASE_DOS := C:\Program Files\Microsoft SDKs\Windows\v7.1

(Не пропустите изменения "v7.0A" и "v7.1".)

Ответ 5

Я получил аналогичную ошибку, проблема остановилась, когда я проверил список "Linker → Input → Additional Dependencies" в свойствах проекта. Мне не хватало полуколонки ";" перед "% (AdditionalDependencies)". У меня тоже была такая же запись дважды. Вы должны отредактировать этот список отдельно для Debug и Release.

Ответ 6

Добавить путь к библиотеке WindowsSdks в project- > properties- > Свойства конфигурации- > Каталоги VС++ → Каталоги библиотек.

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

C:\Program Files (x86)\Microsoft SDK\Windows\v7.1A\Lib;

Моя система Win-7, 64bit, VS 2013,.net framework 4.5

Ответ 7

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

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

Ответ 8

enter image description here

Решение gero для меня работало.
В Visual Studios 2012 выполните следующие действия.
 - Перейдите в Solution Explorer
 - Щелкните правой кнопкой мыши на своем проекте
 - Перейти в Недвижимость
 - Свойства конфигурации → Общие
 - Platform Toolset → изменить на Windows7.1SDK

Ответ 9

Если приведенное выше решение не работает, проверьте, есть ли $(LibraryPath) в свойствах → Каталоги VС++ → Библиотечные каталоги. Если вам это не хватает, попробуйте добавить его.

Ответ 10

ОС: Win10, Visual Studio 2015

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

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

Удачи.

Ответ 11

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

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

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat"

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

@call "%~dp0vcvarsall.bat" x86 %*

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

Обратите внимание, что это воспроизводится в Visual Studio 2017 Enterprise 2017 Version 15.1 (26403.0) даже после успешной установки "repair" install & hellip; при создании нового консольного приложения Visual С++ Win32 и попытке компиляции.

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

Ответ 12

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

введите описание изображения здесь

Дополнительная информация:. Это исправило ошибку в моем случае, потому что версия SDK Windows помогает VS выбирать правильные пути. Каталоги VС++ → Библиотечные каталоги → Изменить Макросы → показывают, что макрос $(WindowsSDK_LibraryPath_x86) путь с номером версии, выбранным выше.