Pregunta

¿Existe alguna forma de utilizar el compilador GCC y al mismo tiempo poder desarrollar a través del IDE de Visual Studio?

Nuestro proyecto es multiplataforma y con bastante frecuencia me meto en problemas por mi colega porque estoy registrando código que no cumple con los estándares (¡esto se puede atribuir al compilador VS!).

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

es posible?

¿Fue útil?

Solución

Lo que estoy a punto de sugerir aún requeriría un archivo MAKE, por lo que repito 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á incluso menos pasos para lograr lo que voy a describir.

Una vez que conozca su comando de línea de comandos específico de Windows para invocar make o g++ en su código, cree un "Evento previo a la compilación" en su proyecto de Visual Studio.("Propiedades del proyecto >> Propiedades de configuración >> Eventos de compilación >> Evento previo a la compilación").

El evento previo a la compilación puede llamar a un script de archivo bat o cualquier otro script en su máquina, y ese script podrá devolver un código de error.Esencialmente, "guión OK" o "guión FALLIDO" es la cantidad de comunicación que su guión puede tener de REGRESO a Visual Studio.

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

Configure esto para que cada vez que cree en Visual Studio, el evento previo a la compilación intente PRIMERO ejecutar make/g++ en su código.Si su script (el que llama a make/g++) detecta algún problema, entonces el script devuelve un error y la compilación se puede DETENER en ese mismo momento.El script puede imprimirse en stdout o stderr y ese resultado debería ser visible para usted en la ventana de resultados de Visual Studio Build (la ventana que generalmente muestra cosas como "========== Build:3 tuvieron éxito, 0 fallaron").

Puede imprimir el script:

"FALLÓ EN LA CONSTRUCCIÓN, se detectó código no portátil, make/g++ devolvió lo siguiente:........."

De esta manera, no es necesario que recuerde cambiar periódicamente de Visual Studio a la línea de comandos.Se hará automáticamente cada vez que construyas.

Otros consejos

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

Creo que lo que hay que hacer es configurarlo para compilarlo con un archivo MAKE (probablemente lo 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 formato VS (para que pueda hacer clic en ella y obtener ese archivo/alineación en el editor), necesita algo para convertir la salida.

Esto puede ayudarte en una discusión relacionada sobre el uso de VS con la versión WRS/VXWorks de las herramientas GCC:

Tenga en cuenta especialmente el programa vinculado allí que convierte la salida de error.

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

Si su colega está trabajando en Unix, probablemente tenga un sistema de compilación basado en make, scons o cmake de todos modos.Puedes usar Cygwin para instalar la cadena de herramientas estándar de Unix en Windows, incluidos gcc, make, flex, bison y todos los demás beneficios de Unix.Hay versiones nativas de scons y cmake, pero intentarán usar VS, por lo que eso no le ayudará.No he intentado instalarlos a través de Cygwin para ver si eso los obliga a realizar gcc, pero es posible que eso no sea relevante para usted.

Crear un sistema de creación que utilice el compilador VS es posible pero doloroso (he estado allí, lo he hecho).Y una pregunta diferente.;)

Luego puede usar un paso de compilación especial para ejecutar la compilación de gcc desde VS.Sería mejor tener un objetivo de compilación separado (como Depurar y Liberar), y puede crearlos en los archivos del proyecto (son solo archivos ASCII, compruébelos), pero no soy lo suficientemente experto en VS para Sé lo fácil que sería hacerlo.Mantenerlo actualizado será un poco complicado; es posible que desees escribir un script para crearlo automáticamente.

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

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

Depende de qué tan complejos sean los archivos de su proyecto:

Definitivamente necesitas un entorno gcc como cygwin.

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

  • para proyectos/soluciones grandes, estoy generando automáticamente un archivo de configuración/make de herramientas automáticas desde el archivo vcproj/sln 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 salida).

Presumiblemente ya estás usando Makefile para construir tu proyecto, ya que es multiplataforma.Simplemente haga de su proyecto VS un proyecto de archivo MAKE con diferentes configuraciones de proyecto que inician 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 archivos MAKE de MSVC es capaz de crear archivos de depuración (PDB), lo cual debería poder hacer, entonces VS Debugger también funcionará sin problemas.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top