2010-09-04 9 views
8

Hoy encendí Visual Studio 2010 (Visual C++) y comencé a trabajar en un proyecto. La solución contiene dos proyectos. Una es una biblioteca estática que estoy escribiendo, la otra es una aplicación de prueba que contiene pruebas unitarias para la biblioteca.Error de vinculación LNK1104 en Visual C++ 2010

Sin cambiar nada de ayer, el ejecutable enlaces ya no

:
LINK : fatal error LNK1104: cannot open file 'mylib.lib' 

Las compilaciones de bibliotecas estáticas y enlaces fina. No he cambiado la configuración del proyecto en alrededor de una semana, y ayer me estaba vinculando muy bien.

Si entro en la configuración del proyecto ejecutable y añadir un directorio de biblioteca para $(SolutionDir)\debug, que en lugar de obtener el error siguiente enlace:

LINK : fatal error LNK1104: cannot open file 'kernel32.lib' 

No estoy seguro de cuál es el problema. He intentado limpiar, reconstruir e incluso reiniciar mi máquina. Google detectó algunos errores en versiones antiguas de Visual C++ (pero estoy usando 2010), así como la posibilidad de que el programa ya se esté ejecutando. Sin embargo, no se está ejecutando, y un reinicio confirma esto.

¿Qué podría hacer que el vinculador no encuentre bibliotecas principales como kernel32.lib, o para el caso, el directorio de salida para mi solución?

Esto es anticuado C++, una biblioteca multiplataforma, no es lo que Microsoft ha agregado.

Respuesta

4

Tuve que marcar "Heredar de los valores predeterminados del proyecto o padre" en el cuadro de diálogo "Directorios de la Biblioteca". Una vez que lo hice, el enlazador podría encontrar todas las bibliotecas necesarias. Aun así, tuve que incluir $(SolutionDir)\debug.

1

Solucioné este problema por deshabilitando "Habilitar el acceso a fuentes de .NET Framework" (ver: "Barra de menús/Herramientas/Opciones/Depuración/General/Habilitar el paso de la fuente de .NET Framework"). Aparentemente this is a bug in Visual Studio.

3

Incluya el directorio SDK de Microsoft en project-> properties-> linker-> general-> additional library directories.

en mi equipo que es

D: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.1 \ Lib

Cuestiones relacionadas