LNK1104: невозможно открыть файл 'kernel32.lib' - PullRequest
2 голосов
/ 13 октября 2010

Я установил VS2010, но обнаружил, что intellisense не работает.Я посмотрел в Интернете и обнаружил, что я не единственный, у кого была эта проблема.Итак, я установил VS2008 и все было хорошо.Затем я решил почистить свой компьютер, удалил VS2010 и сразу же начал получать эту ошибку в моих программах (новых и старых).Даже простая тестовая программа, которая имеет одну команду cout.Я попытался восстановить VS2008, и это не сработало, поэтому я попытался удалить, а затем переустановить, и все же я получаю ту же проблему.

Я искал в Интернете эту проблему, и хотя я обнаружил, что многие другие люди испытывают эту проблему, это не то же самое.У них возникают проблемы с другими внешними ссылками, а не с теми, которые должны автоматически включаться, такими как kernel32, lib32 и т. Д.

Я также попробовал решение, которое работало для некоторых людей с их другими ссылками, и я включил путь (си без кавычек) в мой каталог kernel32, но все равно я получаю ту же проблему, или в некоторых случаях я получу

LNK1104: не могу открыть файл 'C: \ WINDOWS \ system32.obj'

с и без кавычек в конфигере компоновщика.

Может кто-нибудь помочь, пожалуйста?

Ответы [ 4 ]

1 голос
/ 10 августа 2011

Я думаю, что вы ищете здесь -MT вместо -MD. Я столкнулся с той же проблемой. Вы заметите, что когда вы используете эту опцию, размер DLL намного больше (включает зависимости)

0 голосов
/ 25 июня 2013

У меня была эта проблема, и я просто решил ее.У меня был установлен SDK, однако, VCVARS32.bat не смог найти SDK, поэтому по умолчанию использовались пути, которых не было (где установлен VS2008).Я заставил это работать, изменив файл VCVARS32.bat ("C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ Tools \ vsvars32.bat", см. Строку 13): <br/><br/> 11: @call :GetWindowsSdkDir<br/> 12:<br/> *13: @SET WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v6.0A\<br/> 14:<br/> 15: @if not "%WindowsSdkDir%" == "" (

Я должен был сделать это таким образом, поскольку у меня установлены VS2008, VS2010 и VS2012, как, наверное, большинство из нас, кому приходится поддерживать несколько проектов в нескольких командах, поэтому обновление всего глобального, например фактического окружения, может привести к смешиванию версий SDK..

0 голосов
/ 27 июля 2012

В случае, если кто-то снова придет к этому, я нашел решение, которое сработало для меня.

В моем случае UAC из Win 7 и / или антивирусное ПО отказывали в доступе к kernel32.lib.После запуска VS 2008 в качестве администратора и деактивации антивирусной проверки папок проекта это сработало для меня.

0 голосов
/ 13 октября 2010

Я включил путь (с кавычками и без) в мой каталог kernel32

Похоже, вы указываете на C:\Windows\System32, где может быть DLL, но этоне там, где будет файл .lib.

В VS 2010 это, вероятно, где-то вроде:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib

У меня нет готового доступа к VS2008, чтобы сказать, где kernel32.lib устанавливаетсяпо умолчанию для этого продукта.

...