30

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'.compilación de línea de comandos utilizando cl.exe?

Así que agregar C: \ Archivos de programa (x86) \ de Microsoft Visual Studio 10.0 \ Common7 \ IDE a la ruta del sistema y vuelva a intentarlo, pero esta vez:

error grave C1510: No se pueden cargar lenguaje recurso clui.dll.

Alguna idea de cómo resolver esto para que pueda 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.

+8

¿VS no instala un acceso directo/entrada de menú para un shell cmd con todas las configuraciones correctas? – Mat

+1

Hay un win32_all_vars.bat o algo dentro de la carpeta VS, ejecútelo y vuelva a intentarlo. – Xeo

+0

@Mat: Sí, pero eso no es exactamente una solución elegante. –

Respuesta

49

intente iniciar el Visual Studio Comando de

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

Alternativamente, se puede configurar el entorno de ejecución de este en un símbolo del sistema:

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

(nota: esto va a salir de su entorno configurar después de ejecutar.)

(nota 2: cambie x86 según lo desee. Las opciones son x86, ia64, amd64, x86_amd64, x86_ia64)

Desde allí puede ejecutar cl.exe. Si quieres que esto se haga de forma automática y sin hacer cada vez que se ejecuta cl, crear 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 dice el símbolo del sistema para finalizar la sesión después de ejecutar este comando, por lo que sus rendimientos de entorno a la normalidad)

A partir de ahí, llámalo cl.bat. Poner esto en una carpeta en alguna parte, y añadir la ruta a esa carpeta a la variable de entorno PATH, asegurándose de que se trata antes el camino a cl.exe, por lo que este cl.bat se ejecuta cada vez que escriba cl en lugar de cl.exe

I Le recomendamos que simplemente ponga cl.bat en su carpeta system32/, debe venir antes de la ruta cl.exe en una instalación predeterminada.

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

4

Sólo tiene que utilizar vcvarsall.bat como jsvk sugirió:

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

Después de eso, utilice devenv.exe para construir tus cosas si se mantiene a salvo de una gran cantidad de dolores de cabeza:

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

Hay una Muchos otros interruptores de línea de comando que puede verificar con devenv /?.

4

Tengo varias 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". p.ej. "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.

+0

Esta es una gran idea, yo no Sé por qué no he hecho esto antes. –

+0

¿Podemos ver tu archivo por lotes? ¿Quizás una github gist o code pastei? –

4

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

0

Ese error ocurre cuando el enlazador se queda sin memoria.
Puede usar la arquitectura de herramientas x64 Visual Studio tools. línea de comandos

msbuild:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64 

O, mejor aún, añadirlo a la configuración del proyecto en el .vcxproj.
para especificar la versión de 64 bits del compilador y herramientas, añada el siguiente elemento del grupo del alojamiento hasta el archivo de proyecto Myproject.vcxproj después del elemento Microsoft.Cpp.default.props:

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

Estas opciones harán visual Studio utilizar las herramientas bajo las carpetas 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

Cuestiones relacionadas