windows - visual studio 2010 express + win sdk=kan ikke åbne input fil 'kernel32.lib'

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg plejede at kompilere for x64 ved hjælp af VS2008 Express og win SDK. For nylig genopbygget min maskine (opgraderet til 64 bit Windows 7) og fik seneste ekspressinstallation. Følg den samme procedure for at tillade x64-mål og mine kilder forbinder ikke mere.
uanset hvad jeg gør, får jeg altid:



  LINK: fatale fejl LNK1181: kan ikke åbne inputfilen 'kernel32.lib'



sjov nok 32bit kompilering fungerer fint.


Er dette noget godt kendt problem? Google gav mig ingen spor hvordan man håndterer det blot et par omtaler af det samme problem, men ingen løsninger.


Er det muligt at bruge VS 2010 med win 7 SDK til at målrette 64bit?


tak
Pawel

Bedste reference


løsningen var død let i slutningen. Tricket er at pege VS for at vinde SDK, der af en eller anden grund var forkert i mit tilfælde.
 Project Properties -> VC++ Directories -> Library Directories bør pege på C:Program FilesMicrosoft SDKsWindowsv7.1Libx64

Andre referencer 1


Noget andet jeg fandt, også dødt, er at gå til Project Properties-> General og sætte Platform Toolset til Windows7.1SDK. Spekulerer på, hvorfor det virker ...

Andre referencer 2


Jeg har haft det samme problem, og svarene her hjalp mig, men jeg var nødt til at gøre flere ting.


Noget havde ødelagt min Windows SDK-installation, så jeg manglede alle .lib-filer, der går ind i C: \ Programmer \ Microsoft SDKs \ Windows \ v7.1 \ Lib \ (mappen x64 inde var ok). Så jeg fulgte, hvad der er blevet sagt her og geninstalleret det. Så jeg kunne sætte Platform Toolset til Windows7.1SDK (i både VS2010 og VS2013).


Dette virker, fordi Platform Toolset ændrer $ (WindowsSdkDir) stien i Visual Studio (de gemte stier er i systemregistret), der blev brudt, hvis Kernel32.lib ikke blev fundet.

Andre referencer 3


Hvis ingen af ​​ovenstående løsninger fungerede. Stop og gør en sanity check. Jeg blev brændt ved hjælp af den forkerte -G config-streng og det gav mig denne vildledende fejl.


Kør først fra VS Command Prompt ikke den almindelige kommandoprompt. Du kan finde den i
Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015


Dette opsætter alle de korrekte stier til VS-værktøjer osv.


Se nu hvilke generatorer der er tilgængelige fra cmake ...


cmake -help


...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...


Derefter valgte den relevante streng med buen tilføjet.


mkdir \_build cd \_build cmake .. -G "Visual Studio 15 Win64"


At køre cmake i en undermappe gør det nemmere at gøre en 'ren', da du bare kan slette alt i den pågældende mappe.


Jeg opgraderede til Visual Studio 15, men var ikke opmærksom og forsøgte at generere for 2012.

Andre referencer 4


FWIW, jeg havde det samme problem med Visual Studio 2013, da hele v8.1 SDK-installationen (filer + regnøgler) gik AWOL, sandsynligvis forårsaget af installationen af ​​Emborlandero RAD Studio.


Indstilling af miljøvariablen WindowsSdkDir havde ingen virkning, da både Studio selv (devenv.exe, miljøinspekteret via Process Explorer) og en batchfil kaldet fra en batchfil kaldet fra vcvarsall.bat slette den pågældende variabel effektivt de kunne ikke finde v8.1 SDK.


Visual Studio gør det ikke muligt at konfigurere maskinspecifikke mapper på en maskinoverskuelig måde (forslaget om at sætte denne maskinafhængighed i hver enkelt projektfil er latterligt overbevist) og geninstallation af v8.1 SDK var ikke mulig rettidigt. En hurtig løsning til at få Studio til at arbejde igen i mellemtiden var at tilføje strengværdien InstallationFolder under


Software/Microsoft/Microsoft SDKs/Windows/v8.1/


med samme indhold som sin v8.0 fætter. Dette var under HKLM/Wow6432Node, men almindelig HKLM eller HKCU skulle også fungere.


Det fik Studio igen at arbejde igen, uden at genstarte.