2011-01-04 91 views
18

Acabo de migrar de VS2005 a VS2010 y no puede compilar un programa simple.VS 2010 error - no se puede abrir el archivo "iostream"

#include <iostream> 
using std::cout; 
using std::endl; 

int main() 
{ 
    cout << "Hello Visual Studio 2010 :)" << endl; 
} 

Errores -

1 error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. 
2 IntelliSense: cannot open source file "iostream" 
3 IntelliSense: name followed by '::' must be a class or namespace name 
4 IntelliSense: name followed by '::' must be a class or namespace name 
5 IntelliSense: identifier "cout" is undefined 
6 IntelliSense: identifier "endl" is undefined 

PS: estoy completamente nuevo en el uso de VS2010, pero tienen experiencia en VS 2005.

Aquí están las listas de directorios que he añadido a partir VS2005 a VS2010 en 'hoja de propiedades del usuario'

Ejecutable -

$(VCInstallDir)bin; $(VSInstallDir)Common7\Tools\bin; $(VSInstallDir)Common7\tools; $(VSInstallDir)Common7\ide; $(VSInstallDir); $(VSInstallDir)\SDK\v2.0\bin 

Incluye -

$(VCInstallDir)include; $(VCInstallDir)atlmfc\include; $(FrameworkSDKDir)include 

Biblioteca -

$(VCInstallDir)lib; $(VCInstallDir)atlmfc\lib; $(VCInstallDir)atlmfc\lib\i386; $(FrameworkSDKDir)lib; $(VSInstallDir); $(VSInstallDir)lib 

Fuente -

$(VCInstallDir)atlmfc\src\mfc; $(VCInstallDir)atlmfc\src\mfcm; $(VCInstallDir)atlmfc\src\atl; $(VCInstallDir)crt\src 
+0

¿Incluye la ruta incluye la ruta del archivo para sus archivos de encabezado predeterminados? – DumbCoder

+0

Sí, 'CL' es el enlazador. Si su compilador no puede encontrar que está en mal estado. Eso realmente hace que esto sea más una pregunta sysadmin (Serverfault.com) que una pregunta de programación (SO). –

+5

@ T.E.D .: No, 'CL.exe' es el compilador en Visual Studio, el enlazador se llama' LINK.exe'. –

Respuesta

18

Me he encontrado con el mismo problema en un par de máquinas diferentes donde ya había otras versiones de VS (2005, 2008) ya instaladas. Terminé recibiendo todo tipo de errores extraños.

Encontré el siguiente truco funcionó para mí, tal vez funcione en su caso también: - Abra una nueva instancia de VS2010 - Crear nueva aplicación de consola con la configuración de def. - Intente compilar: debería haber algunos errores - Abra el "Administrador de propiedades" - Abra la hoja de propiedades Microsoft.Cpp.Win32.user del proyecto - Haga clic en Directorios de VC++ - Haga clic en "Directorios ejecutables" campo. Debería mostrar un menú desplegable, hacer clic en el menú desplegable y seleccionar "Editar". Debería ver un grupo de valores heredados que supuestamente contienen todos los directorios requeridos similares a los que mencionó anteriormente. Desmarque la opción "Heredar de los padres o los valores predeterminados del proyecto". Vuelva a verificar y haga clic en "Aceptar".
- Repita esto para los includes, los directorios de la biblioteca, etc. -Haga clic en "Aplicar" y "Aceptar" - Reconstruya el proyecto y verifique si esto funcionó.

Solo tuve que hacer esto una vez. Después de cerrar VS y crear un nuevo proyecto, solo pude compilar. Antes de descubrir esto, eliminé manualmente todos los valores heredados y agregué rutas absolutas a todos los directorios VS y SDK. Eso también funcionó, pero fue mucho más trabajo.

+0

Gran respuesta Ralf ... El principal problema aquí, como podemos deducir del error, es que visual studio no está buscando el archivo del compilador en su lista de directorios ejecutables, tal como se define en sus páginas de propiedades. Después de asegurarse de que esté marcada la opción "Heredar de los padres o los valores predeterminados del proyecto", asegúrese de que aparezca $ (ExecutablePath) al final de su campo "Directorios ejecutables". Eso es todo lo que necesitas Si modifica la configuración del proyecto individual para cada archivo, también debe asegurarse de que $ (EjecutablePath) se agregue también para ese proyecto. –

+0

¡Esto funcionó para mí! Estaría agonizando sobre esto por semanas! ¡Gracias! – 8bitcartridge

6

El sistema no pudo encontrar el compilador Visual C++ (cl.exe) ...

Cosas que usted debe tratar:

  • Vuelva a ejecutar el programa de instalación de Visual Studio 2010 y asegúrese de que ha seleccionado la instalación Herramientas de Visual C++ para su plataforma (ya sea x86 o amd64).

  • Ejecute el instalador en modo de reparación.

Si esto no resuelve su problema:

5

Tuve el mismo problema y encontré esta página a través de una búsqueda, pero no entendí la respuesta de Ralf sobre la hoja de propiedades del usuario, y no tuve suerte con la reinstalación. Creo que la respuesta de Ralf hubiera funcionado para mí, pero estaba mirando el cuadro de diálogo "Páginas de propiedades" que aparece cuando hace clic con el botón derecho en un proyecto en el Explorador de soluciones y elige "Propiedades". No me di cuenta de que era diferente del "Administrador de la propiedad".

Entonces, pregunté en el foro msdn y obtuve an answer y a nice explanation of property sheets. La solución que funcionó para mí era editar la hoja de propiedades de usuario en un editor de texto y eliminar todos los caminos, dejando vacía la siguiente manera:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

</Project> 

la hoja de propiedades de usuario se Microsoft.Cpp.Win32.user.props bajo <localappdata>\microsoft\msbuild\v4.0 donde <localappdata> es c:\users\<username>\appdata\local bajo Win7.

+1

OH MI DIOS FUNCIONÓ –

0

No tengo idea de por qué funcionó pero recibí este error y la instalación de Visual Studio Power Commands me solucionó esto. Esta extensión agrega las Propiedades de configuración -> Directorios de VC++ que le permiten modificar directamente la macro de los directorios de ejecutables, podría tener algo que ver con eso.

Cuestiones relacionadas