Portada_Compilar_con_G++-322f2426

La App Makers

En los Sistemas Operativos Windows hay que instalar el paquete MinGW, donde hay un tutorial aqui.G++ es un compilador de línea de órdenes que compila y enlaza programas en C++, generando el correspondiente archivo ejecutable. Para poder ejecutar las órdenes de compilación de G++ necesitamos una consola (o ventana de terminal), que es una ventana de modo texto que permite dar instrucciones al sistema operativo (SO) ejecutando órdenes una por una.

El SO entiende una serie de órdenes por defecto (dir, cd, copy, move, …), cada una con su sintaxis que hay que respetar. Y a medida que instalamos determinados programas se añaden órdenes que se pueden ejecutar en la consola. Por ejemplo, tras instalar MinGW podemos usar la orden g++ para compilar programa en C++. La orden g++ también tiene su sintaxis particular que debemos conocer y respetar para poder escribir y ejecutar las órdenes de compilación correctamente.

Para abrir una consola usa la opción Símbolo del sistema en la caja de búsqueda teclea “cmd” . Se abrirá una ventana similar a esta:

Como ves, es una ventana en modo texto. Lo único que se pueden mostrar son filas de caracteres. No hay gráficos.

En las consolas siempre hay un indicativo (prompt) al que le sigue un cursor de texto parpadeante que indica dónde se pondrá el siguiente carácter que se escriba (al principio, tras el indicativo, o tras el último carácter escrito). En la ilustración, el indicativo es C:UsersUsuario> y el cursor tiene la forma de un guión bajo (o subrayado). El tu ventana lo verás parpadear.

El indicativo por defecto muestra la carpeta actual seguida del símbolo mayor que (>). El cursor está esperando que escribamos una orden. Por ejemplo, escribe dir. Es la orden que te permite ver el contenido de la carpeta actual. Una vez escrita una orden la ejecutamos pulsando la tecla Intro. Hazlo y verás aparecer un listado de las subcarpetas y archivos que hay en esa carpeta (C:UsersUsuario, en mi caso):

El listado tiene cinco columnas: la fecha y la hora de creación o modificación, si se trata de una subcarpeta (<DIR>), el tamaño del archivo (en bytes) y el nombre del archivo o carpeta. La subcarpeta .. es especial, ya que hace referencia a la carpeta madre (en este ejemplo, C:Users).

Otra orden que necesitas conocer es la que te permite cambiar a otras carpetas. Es cd y debe llevar a continuación (separado por un espacio) el nombre de la (sub)carpeta a la que queremos ir. O .., para ir a la carpeta madre. Ejecuta cd .. y llegarás a la carpeta raiz. Lo sabrás porque el indicativo así lo dice:

Puedes observar también que al ir ejecutando órdenes y al salir las líneas que producen las órdenes se van desplazando las líneas anteriores hacia arriba y se dejan de ver. Si queremos volver a verlas podemos utilizar la barra de desplazamiento de la ventana.

Bueno, ya vas conociendo algunas órdenes del SO que utilizarás a menudo en las consolas. Usarás pocas más, ya que lo que nos interesa es compilar programas, lo que haremos siempre con la orden g++ que MinGW ha añadido al instalarse.

Con cd te puedes desplazar a la carpeta en que estén los archivos con el código C++ que deseas compilar. Y dir te servirá para ver los nombres de esos archivos. Pero los archivos los crearás y editarás más cómodamente con una aplicación Windows con todas sus facilidades. Y las operaciones de mantenimiento de los archivos, con el Explorador de Windows.

Antes de compilar nuestro primer programa C++ vamos a organizarnos un poco. Vamos a crear una carpeta en la que ir colocando los distintos programas que iremos desarrollando a lo largo del curso. Llamémosla ProgramasC++. La crearemos en la raíz del disco, para que nos cueste poco llegar a ella en la ventana de consola. Ejecuta en la consola la orden cd .. hasta que ya no produzca ningún cambio.

Estarás ahora en la carpeta raíz del disco. El indicativo sólo muestra la letra de la unidad de disco, dos puntos y una barra invertida (aparte del >):

Puedes crear las carpetas utilizando el Explorador de Windows, o ejecutar en la consola las instrucciones siguientes. Para crear la carpeta ProgramasC++, ejecuta:

mkdir ProgramasC++

mkdir es la orden que permite crear una subcarpeta. Cambia a esa nueva carpeta ejecutando cd ProgramasC++. Como vamos a desarrollar muchos programas a lo largo del curso, organicemos un poco más creando subcarpetas para las distintas unidades (y prácticas). Asegúrate de que estás en la carpeta Usuario (mira el indicativo actual). Ejecuta mkdir ProgramasC++ (o mkdir Programas, lo que prefieras). Y pasa esa nueva carpeta con cd ProgramasC++.

Ya estás en la carpeta donde queremos compilar. ¿Compilar qué? Como acabamos de crear la carpeta, no hay nada en ella (ejecuta dir):

Realicemos el programa Hola Mundo… para una primera prueba de compilación.

Usa los menús del navegador para guardar el documento abierto. Asegúrate de que se guarde como archivo de texto (*.txt) y que tenga el nombre Hola.cpp. Una vez hecho, vuelve a la ventana de consola y ejecuta dir.

Ya debe aparecer el archivo hola.cpp. Si, por cualquier motivo, el archivo tuviera un nombre diferente, usa la orden ren (renombrar) para que tenga el deseado. Por ejemplo, si el archivo se llama hola_cpp.txt, ejecuta la orden:

ren hola_cpp.txt hola.cpp

Ahora que ya tenemos un programa en la carpeta, podemos compilarlo para que se genere el correspondiente archivo ejecutable. Como ya sabemos, usaremos la orden g++. La sintaxis básica para compilar un programa es la siguiente:

Sintaxis del comando g++:

              g++ -o nombre_ejecutable.exe programa.cpp

Donde

nombre_ejecutable: es el nombre que queremos para el archivo ejecutable resultante 

programa: es el nombre del programa (siempre con extensión .cpp).

En este caso, programa es Hola y como archivo ejecutable podemos elegir Hola.exe 

Entonces, en nuestro caso será:

g++ -o Hola.exe Hola.cpp

En G++ es que compile una serie de archivos de código (aquí sólo hay uno, pero podríamos poner varios .cpp, separados por un espacio). Además, podemos incluir opciones de compilación. Las opciones empiezan por un guión (-) y cada una tiene una letra que la identifica. Por ejemplo -o es la opción de compilación que permite dar un nombre a la salida (output) de la compilación (la salida es el programa ejecutable). Hay muchas opciones de compilación, pero de momento nos basta con -o. Aprenderás alguna otra a lo largo del curso.

Si no hay errores de compilación, entonces todo ha ido bien. Si G++ no muestra ningún mensaje, entonces es que no ha habido ningún error de compilación. Se habrá generado el ejecutable y se podrá ejecutar. Ejecuta dir y verás cómo ya tienes un archivo Hola.exe. Los archivos ejecutables se identifican como tales al tener la extensión .exe. Basta ejecutar su nombre (sin la extensión) para que pongan en marcha. Ejecuta Hola:

Algunas  opciones que siguen son comunes para todos los compiladores

Opciones
-ansi Acerca el programa al estándar ANSI C de 1989 (revisado en 2003)
-o <fichero> Renombra el ejecutable generado según fichero
-c Compila sin invocar al linker (genera sólo un .o)
-g Introduce información para facilitar el depurado
-O Activa la optimización del ejecutable
-On Activa la optimización hasta el nivel n
-I<directorio> Busca ficheros adicionales para incluir en directorio
-l<libreria> Enlaza con librería
L<libreria> Enlaza con librería del usuario
-w Elimina todos los mensajes de tipo warning
-Wall Imprime todos los mensajes de tipo warning
-v Salida en modo verbose, es decir, facilita información extra
-S genera un fuente .s en ensamblador; no compila

Opciones especificas solo del compilador INTEL

Las opciones de compilación mas usadas en compiladores INTEL son:
Opciones

-O0 Sin optimización. Se debe usar en las etapas de desarrollo y debugging
del programa
-O1 Optimización en tamaño. Omite optimizaciones que tienden a
incrementar el tamaño del objeto.
-O2 Maximiza velocidad. Es la optimización por defecto.
-O3 Optimización a nivel 2 más optimizaciones de bucles y memoria mucho
más agresivas. Este nivel es el recomendado para aplicaciones con
bucles que usan operaciones de coma flotante intensivamente o procesan
grandes conjunto s de datos.
-g Genera información para el debugging. Esta opción fija -O0 la opción
por defecto.
-openmp Habilita las opciones de compilación con OpenMP
-parallel Genera código paralelizado automáticamente para su utilización dentro
de un único nodo (memoria compartida)
-fast Optimiza el código de forma agresiva (utilizar con precaución)
Información adicional sobre la utilización de los compiladores de Intel y opti

Eso es todo…Espero que les sirva este simple tutorial…Saludos

 
  • Tutorial
  • Programación | Programas, aplicaciones
0 Comentarios

Contesta

CONTACTANOS

Esta es su red social de tecnología para compartir tus ideas y proyectos. Puedes enviarnos un correo si tienes dudas.Nos vemos

Enviando

Nuevo informe

Cerrar

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account