tools plugin para not missing make for connected configurar c++ visual-studio visual-c++ gcc cross-platform

plugin - resolve missing native build tools netbeans c++



Usando GCC desde VS 2005(8) IDE (7)

¿Hay alguna manera de utilizar el compilador GCC mientras se puede desarrollar a través del Visual Studio IDE?

Nuestro proyecto es multiplataforma y con frecuencia tengo problemas con mi colega porque estoy ingresando un código que no cumple con los estándares (¡esto se puede atribuir al compilador de VS!).

Todavía me gustaría poder compilar usando el compilador MS, así puedo continuar depurando, etc., pero me gustaría poder cambiar a compilación usando GCC, solo para estar seguro de que no me estoy rompiendo la construcción en otras plataformas.

es posible?


Depende de qué tan complejos sean sus archivos de proyecto:

Definitivamente necesita un entorno gcc como cygwin.

  • para proyectos pequeños o compilación de un solo archivo puede usar una herramienta de compilación personalizada (archivo de reglas)

  • para proyectos / soluciones de gran tamaño, genero automáticamente una configuración / archivo de autcools desde vcproj / sln-file y lo compilo dentro del IDE. los archivos fuente / líneas de advertencias y errores de gcc se traducen a su equivalente IDE (se puede hacer clic en la ventana de resultados).


Pruebe Cygwin, siempre que configure correctamente todos sus Makefiles, siempre puede intentar compilar tanto en VS como en GCC.


Tuve que mantener makefiles separados para compilar con gcc. Hay un costo inicial asociado con la marca de aprendizaje, pero se beneficiará del conocimiento íntimo de su código y de las diferencias entre VS C ++ y gcc. Cuando hice esto, estaba usando VC 6, por lo que puede haber una mejor manera ahora con VS 2005.


Ciertamente hay formas de hacer esto: así es como desarrollamos para PS3 con la cadena de herramientas de Sony (que se basa en gcc). No sé exactamente cómo funciona eso, pero se integra perfectamente en VS.

Creo que lo que debes hacer es configurarlo para compilar con un archivo MAKE (probablemente el más fácil) o escribir un programa contenedor que convierta los argumentos de VC en GCC. Además, si desea la salida de error / advertencia en el formato VS (para que pueda hacer clic y obtener ese archivo / línea en el editor), necesita algo para convertir la salida.

Esto puede ayudarlo en una discusión relacionada sobre el uso de VS con la versión de WRS / VxWorks de las herramientas gcc:

Observe especialmente el programa vinculado allí que convierte la salida de error.


Es de suponer que ya está utilizando makefile para construir su proyecto, ya que es multiplataforma. Simplemente haga que su proyecto VS sea un proyecto de archivo múltiple con diferentes configuraciones de proyecto que inicien el archivo MAKE usando diferentes parámetros para indicar si una compilación es o no para MSVC o GCC.

Si su compilación de makefile de MSVC es capaz de crear archivos de depuración (PDB), que debería poder hacer, entonces el depurador de VS también funcionará perfectamente.

Luego, construir usando GCC dentro de Visual Studio es tan simple como seleccionar el menú desplegable de configuración ''GCC'' en la barra de herramientas.


No creo que haya un simple cambio, porque las opciones de la línea de comando de gcc son muy diferentes a las VS. En cualquier caso, simplemente ejecutar el compilador no será trivial, ya que su sistema de compilación probablemente establezca un conjunto de preprocesadores que definan y compilen variables que deben establecerse para que la compilación tenga éxito.

Si su colega está trabajando en Unix, probablemente tenga un sistema de compilación make, scons o cmake de todos modos. Puede usar Cygwin para instalar la cadena de herramientas estándar de Unix en Windows, incluyendo gcc, make, flex, bison y todos los demás accesorios de Unix. Existen versiones nativas de scons y cmake, pero estas intentarán usar VS, por lo que no te ayudarán. No he intentado instalarlos a través de Cygwin para ver si eso los obliga a usar gcc, pero eso podría no ser relevante para ti.

Crear un sistema make que use el compilador VS es posible pero doloroso (estado allí, hecho eso). Y una pregunta diferente. ;)

A continuación, puede utilizar un buildstep especial para ejecutar la compilación gcc desde el interior de VS. Sería mejor tener un objetivo de compilación separado (como Depurar y Liberar), y puedes crearlos en los archivos del proyecto (solo son archivos ASCII, compruébalos), pero no soy lo suficientemente sabe cuán fácil sería eso. Mantenerlo actualizado será un poco doloroso, es posible que desee escribir un script para crearlo automáticamente.


Lo que voy a sugerir aún requerirá un archivo MAKE, por lo que estoy repitiendo parcialmente el consejo de una respuesta anterior. O, como también se mencionó anteriormente, tal vez ya tenga un archivo MAKE, en cuyo caso tendrá aún menos pasos para lograr lo que estoy por describir.

Una vez que conoce su comando de línea de comandos de Windows específico para invocar make o g ++ en su código, entonces crea un "evento de preconstrucción" en su proyecto de Visual Studio. ("Propiedades del proyecto >> Propiedades de configuración >> Eventos de compilación >> Evento de compilación previa").

El evento de precompilación puede invocar un script de archivo bat, o cualquier otro script en su máquina, y ese script podrá devolver un código de error. Esencialmente, "script OK" o "script FAILED" es la extensión de la cantidad de comunicación que su script puede tener BACK en visual studio.

El script no ve automáticamente todas las variables de entorno de estudio visual (como $ (InputDir), $ (ProjectDir), $ (SolutionName), etc.), sin embargo, puede usar esas variables cuando especifica cómo llamar al script. En otras palabras, puede pasar esos valores al guión como argumentos.

Configure esto para que cada vez que cree en Visual Studio, el evento de preconstrucción FIRST intente ejecutar make / g ++ en su código. Si su secuencia de comandos (la que llama a make / g ++) detecta algún problema, la secuencia de comandos devuelve un error y la construcción puede DETENERSE en ese momento. El script puede imprimir en stdout o stderr y esa salida debe ser visible para usted en la ventana de salida de Visual Studio Build (la ventana que generalmente muestra cosas como "========== Build: 3 exitoso, 0 fallido" )

Puede hacer que se imprima el script:

"BUILD FAILED, código no portátil detectado, make / g ++ devolvió lo siguiente: ........."

De esta forma, no tiene que recordar cambiar periódicamente de Visual Studio a la línea de comando. Se realizará automáticamente para usted cada vez que construya.