2011-03-20 9 views
8

En mi escenario, tengo un proyecto de C++ en CDT Eclipse. Sin embargo, este proyecto es más bien una colección de programas individuales (de ayuda) que una aplicación compleja. En consecuencia, quiero ser capaz de construirlos y ejecutarlos individualmente.Eclipse CDT compilación/ejecución en base a archivos

Mi estructura del proyecto es muy simple y se ve así:

src/app1.cpp 
src/app2.cpp 
src/... 

Tenga en cuenta que no tengo los archivos de cabecera común o bibliotecas. Sin embargo, quiero poder agregar programas a este proyecto simplemente creando, p. Ej. src/appx.cpp

Lo ideal sería que yo quiero tener atajos para

  • "Construir .cpp actualmente abierto"
  • "Ejecutar binaria de .cpp actualmente abierto"

alguna sugerencia sobre cómo lograr este comportamiento, si es posible sin complementos adicionales?

Respuesta

5

La manera directa de lograr lo que desea es crear un proyecto Makefile con CDT y agregar una nueva regla objetivo para cada una de sus aplicaciones dentro de su Makefile . Incluso puede usar SCons u otros sistemas de compilación con un proyecto CDT Makefile y obtener el mismo efecto.

También puede engañar a la compilación administrada para crear ejecutables en lugar de archivos de objeto. Elimine la opción -c de Otros indicadores de la configuración del compilador C++ dentro de las propiedades del proyecto. Esto producirá un archivo de aplicación separado para cada uno de sus archivos fuente.

Los archivos de aplicación que se crean dentro del directorio de compilación tendrán la extensión de archivo de objeto y no serán ejecutables. Para solucionar esto, se puede añadir un script de compilación posterior en el directorio del proyecto, tales como:

postbuild.sh para Linux:

chmod +x *.o 
rename -v 's/\.o$//' *.o 

o postbuild.bat para Windows:

rename *.o *.exe 

Después de añadir ../postbuild.sh o ../postbuild.bat como un comando de compilación posterior en la configuración de compilación, sus aplicaciones estarán listas para ejecutarse. Haga clic con el botón derecho en cualquiera de estos archivos ejecutables y elija Debug As o Run As y se creará una nueva configuración de ejecución.

También deberá detener el enlazador de la compilación administrada para evitar errores. Esto se puede lograr cambiando el comando del enlazador a true (Linux) o true.exe (Windows, msys).

+0

Seguramente esto me permite construir/ejecutar diferentes aplicaciones de forma independiente. Sin embargo, implica un gran esfuerzo para agregar nuevas aplicaciones, por ejemplo. Estaba buscando una forma más conveniente, que utiliza los archivos en sí mismos como objetos para compilación/ejecución, similar a "ejecutar como aplicación" para clases java individuales – dcn

+0

@dcn: consulte la respuesta actualizada y vea si funciona. Lo probé en Windows y cambié a Ubuntu para probarlo. Si no funciona para usted, sus retroalimentaciones serán valiosas. –

+0

Esta solución realmente funciona.Francamente, esperaba una solución más limpia y no complicada usando algunas opciones de proyectos de eclipse, que aún no he encontrado, pero mi intuición dice que su sugerencia es la mejor posible. – dcn