c++ visual-studio-2010 compiler-construction compiler-errors

c++ - Compilación de línea de comandos usando cl.exe?



visual-studio-2010 compiler-construction (5)

Estoy tratando de usar el compilador C ++ de Visual Studio Express 2010 sin usar el IDE. Encontré cl.exe en C: / Archivos de programa (x86) / Microsoft Visual Studio 10.0 / VC / bin. Sin embargo, estoy teniendo algunas dificultades. En primer lugar, me dio una advertencia emergente cuando escribo cl diciendo ''El programa no puede iniciarse porque mspdb100.dll falta en su computadora''.

Así que agregué C: / Archivos de programa (x86) / Microsoft Visual Studio 10.0 / Common7 / IDE a la ruta del sistema y luego intenté nuevamente, pero esta vez:

error fatal C1510: No se puede cargar el recurso de lenguaje clui.dll.

¿Alguna idea de cómo resolver esto para poder compilar? Además, ¿cómo puedo configurar la ruta, así que puedo simplemente escribir ''cl main.cpp'', etc., desde una carpeta de solución que no contenga cl.exe. Por el momento tengo que estar dentro de la carpeta bin. Gracias.


Ese error ocurre cuando el enlazador se queda sin memoria.
Puede usar la arquitectura de herramientas x64 Herramientas de Visual Studio.

línea de comando de msbuild:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64

O, mejor aún, agréguelo a la configuración del proyecto en .vcxproj.
Para especificar la versión de 64 bits del compilador y las herramientas, agregue el siguiente elemento de grupo de propiedades al archivo de proyecto Myproject.vcxproj después del elemento Microsoft.Cpp.default.props:

<PropertyGroup> <PreferredToolArchitecture>x64</PreferredToolArchitecture> </PropertyGroup>

Estas opciones harán que Visual Studio use las herramientas en las carpetas de arquitectura amd64 (de acuerdo con la arquitectura de destino):
VC / bin / amd64
VC / bin / amd64_x86
VC / bin / amd64_arm

https://msdn.microsoft.com/en-us/library/dd293607.aspx


Esta es una tarea bastante simple y directa. Primero agregue la ruta del compilador a la ruta del sistema .:C:/Program Files / Microsoft Visual Studio 10.0 / VC / bin; A continuación, abra el símbolo del sistema y cambie el directorio a su carpeta de origen; A continuación, ejecute el archivo vcvars32.bat para configurar el entorno para usar vc ++ en x86; Después de esto, ahora puede escribir cl para compilar su programa


Intente iniciar el símbolo del sistema de Visual Studio desde

Start-> All Programs -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt 2010

Alternativamente, puede configurar el entorno ejecutando esto en el símbolo del sistema:

"c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/vcvarsall.bat" x86

(nota: esto dejará configurado el entorno después de ejecutarlo).

(nota 2: cambie x86 como desee. Las opciones son x86 , ia64 , amd64 , x86_amd64 , x86_ia64 )

Desde allí puede ejecutar cl.exe . Si desea que esto se realice y se deshaga automáticamente cada vez que ejecute cl , cree un archivo por lotes con este contenido:

@echo off %comspec% /c ""c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/vcvarsall.bat" x86 && cl.exe %*"

(el /c le dice al símbolo del sistema que finalice la sesión después de ejecutar este comando, para que su entorno regrese a la normalidad).

A partir de ahí, cl.bat . Coloque esto en una carpeta en alguna parte, y agregue la ruta a esa carpeta a su PATH entorno PATH , asegurándose de que se encuentre antes de la ruta a cl.exe , para que este cl.bat se ejecute siempre que escriba cl lugar de cl.exe

Te recomiendo que simplemente pongas cl.bat en tu carpeta system32/ , debe venir antes de la ruta de cl.exe en una instalación predeterminada.

Alternativamente, puede agregarlo en cualquier orden y siempre escriba cl.bat , o cl.bat otra manera para que no haya confusión.


Simplemente use vcvarsall.bat como sugirió jsvk:

"c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/vcvarsall.bat" x86

Después de eso, utiliza devenv.exe para construir tus cosas si te mantienes a salvo de muchos dolores de cabeza:

devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ]

Hay muchos otros interruptores de línea de comando que puedes verificar con devenv /? .


Tengo múltiples versiones de VS instaladas; Creo un pequeño archivo .BAT para cada versión, colocado en algún lugar de la ruta, que llama al relevante "vcvarsall.bat". por ejemplo, "vc9.bat" llama a vcvarsall.bat para VS2008, mientras que "vc10.bat" llama a vcvarsall.bat para VS2010. Puedo abrir una ventana de comando normal como de costumbre, escribir "vc9" y presto, esa ventana de comandos está lista para compilar etc. utilizando VS2008.