2012-03-22 19 views
19

Solía ​​compilar para x64 usando VS2008 express y ganaba SDK. Recientemente reconstruí mi máquina (actualizado a 64 bits de Windows 7) y obtuve la última versión instalada. Siguió el mismo procedimiento para permitir objetivos x64 y mis fuentes ya no vinculan. no importa lo que hago yo siempre consigo:visual studio 2010 express + win sdk = no se puede abrir el archivo de entrada 'kernel32.lib'

LINK: error grave LNK1181: no se puede abrir archivo de entrada 'kernel32.lib'

compilación de 32 bits lo suficientemente divertida funciona bien.

¿Es este un problema bien conocido? Google no me dio ninguna pista sobre cómo abordarlo, solo un par de menciones del mismo problema pero sin soluciones.

¿Es posible usar VS 2010 con win 7 SDK para apuntar a 64 bits?

gracias Pawel

Respuesta

26

la solución era fácil de muertos al final. El truco es apuntar VS para ganar el SDK que, por alguna razón, fue incorrecto en mi caso. Project Properties -> VC++ Directories -> Library Directories debería apuntar a C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64

+4

Eres mi persona favorita en el mundo ahora mismo. :-) – kmort

10

Otra cosa que he encontrado, también muerto fácil, es ir a Proyecto Properties-> General y establecer la plataforma conjunto de herramientas para Windows7.1SDK. Me pregunto por qué esto funciona ...

+0

No veo "Platform Toolset" en General: solo veo "Output Directory", "Intermediate Directory", "Configuration Type", "Common Language Runtime Support" y "Build Log File". Sin embargo, la respuesta de Pawel me funciona. – meowsqueak

+0

Esta respuesta funcionó para mí al actualizar de la comunidad VS 2013 a la Comunidad 2017 –

2

He tenido el mismo problema y las respuestas aquí me han ayudado, pero tenía que hacer más cosas.

Algo había dañado mi instalación de Windows SDK, por lo que me faltaban todos los archivos .lib que van a C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.1 \ Lib \ (la carpeta x64 estaba bien). Así que seguí lo que se dijo here y lo reinstalé. Que podría configurar Platform Toolset a Windows7.1SDK (en VS2010 y VS2013).

Esto funciona porque Platform Toolset cambia la ruta $ (WindowsSdkDir) dentro de Visual Studio (las rutas guardadas están en el registro del sistema), que se rompieron si Kernel32.lib no se encuentra.

+1

Gracias por la edición @Matthieu. Otra cosa que he intentado fue instalar VS2010 Express, para poder configurar Platform Tools en VS100 en lugar de Windows7.1SDK; eso también funcionó para mí. Lo hice porque otras personas en mi equipo estaban usando esta configuración, y queríamos evitar conflictos más adelante. –

0

FWIW, tuve el mismo problema con Visual Studio 2013 cuando toda la instalación del SDK v8.1 (archivos + claves de registro) se eliminó, probablemente debido a la instalación de Emborlandero RAD Studio.

establecer la variable de entorno WindowsSdkDir no tuvo ningún efecto, ya que ambos sí Estudio (devenv.exe, el medio ambiente inspeccionado a través del Explorador de procesos) y un archivo por lotes llamado desde un archivo por lotes llamado de vcvarsall.bat borran efectivamente esa variable porque no podían encontrar el V8. 1 SDK.

Visual Studio no permite que los directorios específicos de la máquina se configuren en toda la máquina (la sugerencia de poner esta dependencia de la máquina en cada uno de los archivos del proyecto es increíble) y volver a instalar la v8.1 SDK no fue posible de manera oportuna. Una solución rápida para llegar a trabajar de nuevo estudio en el ínterin fue agregar el valor de cadena InstallationFolder bajo

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

con el mismo contenido que su primo v8.0. Esto estaba bajo , pero el HKLM o el HKCU deberían funcionar también.

Eso hizo que Studio funcionara de nuevo inmediatamente, sin siquiera un reinicio.

1

Si ninguna de las soluciones anteriores funcionó. Deténgase y haga un chequeo de cordura. Me quemé usando la cadena de configuración incorrecta -G y me dio este error engañoso.

Primero, ejecute desde el indicador de comandos VS no el símbolo del sistema normal. Puede encontrarlo en Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015

Esto configura todas las rutas correctas a las herramientas de VS, etc.

Ahora ven lo que están disponibles en cmake generadores ...

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

A continuación, elija la cadena correspondiente con el arco agregado.

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

Correr cmake en un subdirectorio hace que sea más fácil hacer una 'limpia' ya que sólo se puede borrar todo en ese directorio.

de actualizar a Visual Studio 15, pero no estaba prestando atención y estaba tratando de generar para el año 2012.

Cuestiones relacionadas