2012-03-22 21 views
19

ho usato per compilare per x64 utilizzando VS2008 Express e vincere SDK. Recentemente ho ricostruito la mia macchina (aggiornato a 64 bit di Windows 7) e ho installato l'ultima versione di Express. Seguita la stessa procedura per consentire target x64 e le mie fonti non si collegano più. non importa quello che faccio ottengo sempre:Visual Studio 2010 Express + Windows SDK = impossibile aprire il file di input 'kernel32.lib'

COLLEGAMENTO: Errore irreversibile LNK1181: impossibile aprire il file di input 'kernel32.lib'

divertente compilation 32bit abbastanza funziona bene.

E 'questa una ben noto problema? Google non mi ha dato alcun indizio su come affrontarlo solo un paio di menzioni dello stesso problema ma nessuna soluzione.

È possibile utilizzare VS 2010 con win 7 SDK per target 64 bit?

grazie Pawel

risposta

26

la soluzione era morto facile alla fine. Il trucco è puntare VS per vincere l'SDK che per qualche motivo non era corretto nel mio caso.

+4

Tu sei la mia persona preferita nel mondo in questo momento. :-) – kmort

10

Un'altra cosa che ho trovato, anche senza problemi, è andare a Proprietà progetto-> Generale e impostare il set di strumenti della piattaforma su Windows7.1SDK. Mi chiedo perché questo funziona ...

+0

Non vedo "Piattaforma Toolset" sotto Generale - Vedo solo "Directory di output", "Directory intermedia", "Tipo di configurazione", "Supporto Common Language Runtime" e "Crea file di registro". Comunque la risposta di pawel funziona per me. – meowsqueak

+0

Questa risposta ha funzionato per me durante l'aggiornamento dalla community di VS 2013 alla community 2017 –

2

Ho avuto lo stesso problema e le risposte qui mi hanno aiutato, ma ho dovuto fare più cose.

Qualcosa aveva danneggiato l'installazione di Windows SDK, quindi mi mancavano tutti i file .lib che si trovano in C: \ Programmi \ Microsoft SDK \ Windows \ v7.1 \ Lib \ (la cartella x64 all'interno era ok). Così ho seguito quello che è stato detto here e reinstallato. Di quanto non potessi impostare Platform Toolset su Windows7.1SDK (sia in VS2010 che in VS2013).

Questo perché il set di strumenti della piattaforma modifica il percorso $ (WindowsSdkDir) in Visual Studio (i percorsi salvati si trovano nel registro di sistema), che sono stati interrotti se non è stato trovato Kernel32.lib.

+1

Grazie per la modifica di @Matthieu. Un'altra cosa che ho provato è stata installare VS2010 Express, in modo da poter impostare Platform Toolset su VS100 invece che su Windows7.1SDK, che ha funzionato anche per me. L'ho fatto perché le altre persone del mio team utilizzavano questa impostazione e volevamo evitare i conflitti in seguito. –

0

FWIW, Ho avuto lo stesso problema con Visual Studio 2013 quando l'installazione dell'SDK v8.1 (file + reg keys) è diventata AWOL, probabilmente causata dall'installazione di Emborlandero RAD Studio.

L'impostazione della variabile WindowsSdkDir ambiente ha avuto alcun effetto in quanto sia in sé Studio (devenv.exe, ambiente ispezionato tramite Process Explorer) e un file batch chiamato da un file batch denominato da vcvarsall.bat effettivamente cancellati quella variabile perché non riuscivano a trovare la v8. 1 SDK.

Visual Studio non consente di configurare le directory specifiche della macchina in modo a livello di macchina (il suggerimento di mettere questa dipendenza della macchina in ogni singolo file di progetto è ridicolo) e di reinstallare la v8.1 SDK non è stato possibile in modo tempestivo. Una soluzione rapida per ottenere Studio lavorare di nuovo nel frattempo è stato quello di aggiungere il valore di stringa InstallationFolder sotto

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

con gli stessi contenuti come il suo cugino v8.0. Questo era sotto ma il semplice HKLM o HKCU dovrebbe funzionare pure.

In questo modo Studio ha funzionato di nuovo immediatamente, senza nemmeno un riavvio.

1

Se nessuna delle soluzioni di cui sopra ha funzionato. Fermati e fai un controllo mentale. Mi sono bruciato usando la stringa di configurazione -G errata e mi ha dato questo errore fuorviante.

Per prima cosa, eseguire dal prompt dei comandi VS non il prompt dei comandi regolare. Lo si può trovare in Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015

Questo imposta tutti i percorsi corretti per strumenti VS, ecc

ora vedere quali sono disponibili da cmake generatori ...

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". ...

Quindi scegliere la stringa appropriata con l'arco aggiunto.

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

Esecuzione cmake in una sottodirectory rende più facile fare un 'pulito' dal momento che si può solo eliminare tutto in quella directory.

ho aggiornato a Visual Studio 15, ma non stava prestando attenzione e stava cercando di generare per il 2012.

Problemi correlati