Manual de Penguin cpp
Un IDE de C y C++ sencillo para aprender, para Linux y macOS (Apple Silicon). Este manual corresponde a la versión 0.2.2.
1. Instalar
Las instrucciones están en la página de descargas. En resumen:
- Linux (Debian, Ubuntu, Linux Mint y derivadas): con el repositorio APT,
sudo apt install penguin-cpp. Instala también gcc, g++, make, gdb y los formateadores. - macOS (Mac con Apple Silicon): en Terminal,
curl -fsSL https://juanfrang.github.io/Penguin-cpp/install-macos.sh | bash. Para compilar hacen falta las Command Line Tools de Apple; si faltan, Penguin cpp ofrece instalarlas.
La primera vez, Penguin cpp busca los compiladores del sistema (gcc en Linux, clang en macOS) y crea tres configuraciones: Release (para usar), Debug (para depurar) y Profiling (para perfilar). Se elige una en la lista de la barra de herramientas.
2. Tu primer programa
- Pulsa Nuevo Documento en la bienvenida, o Archivo > Nuevo > Archivo Fuente (Ctrl+N; en Mac ⌘N).
- Escribe:
#include <iostream> using namespace std; int main() { string nombre; cout << "¿Cómo te llamas? "; cin >> nombre; cout << "Hola, " << nombre << endl; return 0; } - Guárdalo como
hola.cpp(Ctrl+S; en Mac ⌘S). - Pulsa F11 (Ejecutar > Compilar y Ejecutar). Se abre una terminal con tu programa; al terminar muestra cuánto tardó y su código de salida, y espera a que pulses Enter.
No hace falta system("pause") al final: Penguin cpp ya espera. Tampoco
system("cls") ni #include <windows.h>, que solo existen en Windows (ver
Problemas frecuentes).
3. La ventana
- Bienvenida: crear o abrir documentos, los archivos recientes, y cambiar el tema, la fuente o el idioma.
- Panel izquierdo: Proyecto (los archivos del proyecto), Clases (las funciones, clases y variables del código; un clic lleva a su definición) y Depurar (las variables vigiladas).
- Panel inferior: Compilador (errores y advertencias; un doble clic lleva a la línea), Registro de Compilación, Depuración y Resultados (de la búsqueda).
- Barra de herramientas: los botones de compilar y ejecutar, y la lista de configuraciones del compilador.
4. El editor
- Autocompletado: aparece solo al escribir
.,->o::, o se pide con Ctrl+Espacio (en Mac ⌥+Espacio). Muestra las funciones, variables y miembros de tu código y de las bibliotecas que incluyes. - Ayuda de parámetros: al escribir
(después de una función se ven sus parámetros. - Plegado: los bloques entre llaves se pliegan con el triángulo del margen.
- Buscar y reemplazar: Ctrl+F y Ctrl+R (en Mac ⌘F, ⌘R); F3 busca otra vez.
- Comentar: Ctrl+/ (en Mac ⌘/) comenta o descomenta las líneas seleccionadas.
- Formatear: Formato > Formatear el archivo actual ordena la sangría y las llaves con astyle; el estilo se elige en Formato > Opciones de formato.
- Zoom: Ctrl + rueda del ratón, o Ctrl++ y Ctrl+-. En Mac, ⌘ + rueda o pellizcando el trackpad.
- Exportar e imprimir: Archivo > Exportar guarda el código con colores en HTML, RTF o TeX; Archivo > Imprimir lo imprime o lo guarda en PDF.
5. Proyectos
Un archivo suelto basta para ejercicios de un solo archivo. Para programas con varios archivos se
usa un proyecto (.dev):
- Archivo > Nuevo > Proyecto..., elige una plantilla (por ejemplo una aplicación de consola), el lenguaje (C o C++) y un nombre.
- Agrega archivos con el menú Proyecto o con clic derecho en el panel Proyecto.
- Proyecto > Opciones (Ctrl+H; en Mac ⌃H): el nombre del ejecutable, las opciones del compilador y del enlazador, las carpetas de cabeceras y bibliotecas, y los argumentos del programa.
Penguin cpp escribe un Makefile para cada proyecto y lo compila con
make. Los proyectos de Dev-C++ para Windows se abren igual; si usan bibliotecas o
cabeceras de Windows, hay que cambiarlas.
6. Compilar y ejecutar
| Acción | Tecla | Qué hace |
|---|---|---|
| Compilar | F9 | Compila lo que cambió |
| Ejecutar | F10 | Ejecuta el último programa compilado |
| Compilar y ejecutar | F11 | Las dos cosas |
| Reconstruir todo | F12 | Compila todo desde cero |
| Revisar sintaxis | Ctrl+F9 | Busca errores sin generar el programa |
| Detener | F6 | Termina el programa que se está ejecutando |
En Mac, las teclas F se pulsan con fn (fn+F9…), salvo que en Configuración del Sistema > Teclado se usen como teclas de función normales.
Los errores aparecen en la pestaña Compilador del panel inferior; un doble clic lleva a la línea, marcada en rojo. Los programas corren en una terminal: en Linux, la del escritorio (se elige en Herramientas > Opciones de Entorno); en Mac, Terminal. Los argumentos del programa se ponen en Ejecutar > Parámetros.
7. Depurar
El depurador detiene el programa donde le digas para ver qué hace, línea a línea. Usa gdb en Linux y lldb en macOS; en los dos se maneja igual.
- Elige la configuración Debug en la lista de compiladores (incluye la información que necesita el depurador) y reconstruye (F12).
- Pon un punto de parada: clic en el margen, junto al número de línea, o F4.
- Empieza con Ejecutar > Depurar (F5). El programa se detiene en el punto de parada; la línea actual queda resaltada.
- Avanza:
Acción Tecla Siguiente línea (sin entrar en funciones) F7 Entrar en la función F8 Continuar hasta el siguiente punto de parada botón Continuar Ejecutar hasta el cursor botón Ejecutar hasta el cursor Salir de la función botón Saltar función Terminar F6 - Mira las variables:
- Vigilancias: Añadir variable vigilada (o clic derecho sobre una variable). Aparecen en el panel izquierdo, pestaña Depurar, y se actualizan en cada paso; las estructuras y arreglos se despliegan.
- Pasar el ratón sobre una variable del código muestra su valor.
- Evaluar: en la pestaña Depuración del panel inferior escribe una expresión
(
p.x + 1,notas[2]) y pulsa Enter.
La entrada y salida del programa (cin, cout) van a su propia terminal.
En Enviar comando (pestaña Depuración del panel inferior) se pueden escribir comandos del depurador (por ejemplo bt para
ver la pila); la respuesta aparece debajo. El botón Ver ventana del CPU del panel de depuración
muestra el código máquina y los registros.
8. Perfilar
Ejecutar > Análisis Perfil de Ejecución muestra en qué funciones pasa el tiempo tu programa. Penguin cpp ofrece activar la opción de perfilado, recompila, ejecuta el programa y abre los resultados.
- Linux (gprof): tiempo y número de llamadas de cada función, y el grafo de quién llama a quién.
- macOS (LLVM): cuántas veces se llamó cada función, de la más llamada a la que menos (macOS no mide tiempos ni tiene grafo de llamadas).
9. Opciones
- Herramientas > Opciones del Compilador: las configuraciones de compilador (Release, Debug, Profiling), sus opciones (estándar de C++, optimización, advertencias) y sus programas.
- Herramientas > Opciones de Entorno: el idioma, el tema, la terminal (Linux) y las carpetas.
- Herramientas > Opciones del Editor: la fuente, los colores del código (esquemas claro y oscuro), las tabulaciones y el autocompletado.
- Herramientas > Configurar Teclas Rápidas: cambiar cualquier atajo.
La configuración se guarda en ~/.config/penguin-cpp (Linux) o en
~/Library/Application Support/penguin-cpp (macOS). Para volver a la configuración
inicial, cierra Penguin cpp y borra esa carpeta.
10. Atajos de teclado
En Mac, ⌘ (Command) reemplaza a Ctrl, salvo en los atajos que macOS se reserva (⌘Espacio, ⌘Tab, ⌘H, ⌘M, ⌘Q), que siguen con ⌃ (Control).
| Acción | Linux | macOS |
|---|---|---|
| Nuevo archivo | Ctrl+N | ⌘N |
| Abrir | Ctrl+O | ⌘O |
| Guardar / Guardar todo | Ctrl+S / Ctrl+Shift+S | ⌘S / ⇧⌘S |
| Cerrar | Ctrl+W | ⌘W |
| Deshacer / Rehacer | Ctrl+Z / Ctrl+Y | ⌘Z / ⇧⌘Z o ⌘Y |
| Autocompletar | Ctrl+Espacio | ⌥Espacio (o ⌃Espacio, ⌥Esc) |
| Buscar / Reemplazar | Ctrl+F / Ctrl+R | ⌘F / ⌘R |
| Ir a la línea | Ctrl+G | ⌘G |
| Comentar / descomentar | Ctrl+/ | ⌘/ |
| Duplicar / borrar línea | Ctrl+E / Ctrl+D | ⌘E / ⌘D |
| Cambiar entre .h y .cpp | Ctrl+Q | ⌃Q |
| Pestaña siguiente | Ctrl+Tab | ⌃Tab |
| Compilar / Ejecutar / Los dos / Reconstruir | F9 / F10 / F11 / F12 | igual (con fn) |
| Depurar / Punto de parada / Detener | F5 / F4 / F6 | igual (con fn) |
| Siguiente línea / Entrar | F7 / F8 | igual (con fn) |
| Pantalla completa | Ctrl+F11 | ⌘F11 |
| Este manual | F1 | fn+F1 |
En Mac, el editor también entiende las teclas del Mac: ⌘ + flechas (inicio y fin de línea o del archivo), ⌥ + flechas (de palabra en palabra) y ⌥/⌘ + borrar.
11. Problemas frecuentes
«windows.h: No such file or directory» (o conio.h)
windows.h y conio.h son de Windows y no existen en Linux ni en macOS. Casi
siempre se usan para cosas de la consola que tienen equivalente portable:
| En Windows | En C++ estándar o portable |
|---|---|
Sleep(500) | std::this_thread::sleep_for(std::chrono::milliseconds(500)) (<thread>, <chrono>) |
system("cls") | cout << "\033[2J\033[H"; |
system("pause") | No hace falta en Penguin cpp |
Colores (SetConsoleTextAttribute) | cout << "\033[32m"; (verde) … "\033[0m" (normal) |
Mover el cursor (gotoxy) | cout << "\033[" << fila << ";" << columna << "H"; |
No aparece el autocompletado (Mac)
Usa ⌥Espacio. ⌃Espacio lo usa macOS para cambiar de teclado cuando hay más de uno; se puede liberar en Configuración del Sistema > Teclado > Funciones rápidas de teclado > Fuentes de entrada.
Las teclas F no hacen nada (Mac)
Púlsalas con fn, o activa Usar F1, F2, etc. como teclas de función estándar en Configuración del Sistema > Teclado.
macOS dice que la app «está dañada» o que no puede verificarla
Instálala con el instalador de una línea de la
página de descargas, o en Terminal:
xattr -cr "/Applications/Penguin cpp.app".
No se encontró el compilador
En Linux: sudo apt install g++ gdb make. En Mac: xcode-select --install.
Después, cierra y abre Penguin cpp.
No se abre la terminal al ejecutar (Linux)
Instala una terminal (por ejemplo sudo apt install xterm) o elige la tuya en
Herramientas > Opciones de Entorno.
12. Reportar un problema
Si Penguin cpp tiene un error, lo anota en penguin-cpp-errores.txt, en tu Escritorio, y
al cerrar te ofrece abrirlo. Escribe a
jfgonzalez@unimagdalena.edu.co con la versión, tu
sistema, qué hiciste, qué esperabas y qué pasó, y adjunta ese archivo, una captura de pantalla y el
código con el que pasa. La página de
descargas tiene un ejemplo.
Penguin cpp es software libre (GPL v2 o posterior), basado en Embarcadero Dev-C++. Código: github.com/JuanFranG/Penguin-cpp.