Compilar y Ejecutar
Presiona F9 para compilar, enlazar y ejecutar tu aplicacion en un solo paso. HarbourBuilder orquesta todo el proceso de construccion automaticamente, desde el preprocesamiento de tus archivos .prg hasta lanzar el ejecutable resultante.
Presiona F9 y HarbourBuilder se encarga de todo: compilacion de Harbour, invocacion del compilador C, enlazado, incorporacion de recursos y lanzamiento de tu aplicacion. Sin makefiles, sin scripts de linea de comandos, sin pasos manuales.
El Proceso de Construccion de 7 Pasos
Detalles de los Pasos
| Paso | Herramienta | Entrada | Salida | Descripcion |
|---|---|---|---|---|
| 1. Preprocesar | Harbour | .prg, .ch | .ppo | Procesa directivas #include, #define y preprocesador xBase. |
| 2. Compilar | Harbour | .ppo | .c | Traduce el fuente Harbour preprocesado a codigo C. |
| 3. Compilar C | Compilador C | .c | .o / .obj | Invoca MSVC, BCC, GCC o Clang para producir archivos de objeto. |
| 4. Enlazar | Enlazador | .o / .obj | .exe | Enlaza archivos de objeto con bibliotecas del runtime Harbour y del sistema. |
| 5. Incorporar | Herramienta de recursos | iconos, imagenes | .exe | Incorpora recursos de la aplicacion (iconos, imagenes, formularios) en el ejecutable. |
| 6. Validar | IDE | registro de construccion | informe | Verifica errores de compilacion/enlazado y los muestra en el panel de Mensajes. |
| 7. Lanzar | IDE | .exe | aplicacion en ejecucion | Lanza la aplicacion compilada para pruebas. |
Dialogo de Progreso
Durante la construccion, un dialogo de progreso muestra el estado en tiempo real de cada paso:
- Barra de progreso — indicacion visual de la construccion completa en los 7 pasos.
- Etiqueta del paso actual — muestra que paso se esta ejecutando (p. ej., "Compilando main.prg...").
- Boton cancelar — aborta la construccion en cualquier momento.
- Salida de registro — salida cruda del compilador y enlazador mostrada en un area de texto desplazable.
Dialogo de Errores
Si la construccion falla, aparece un dialogo de errores con:
- Contador de errores — numero total de errores encontrados.
- Contador de advertencias — numero total de advertencias no fatales.
- Lista de errores en la que se puede hacer clic — cada error muestra el archivo, numero de linea y descripcion.
- Doble clic para navegar — hacer clic en un error abre el archivo fuente en la linea exacta.
Panel de Mensajes de Construccion
El panel de Mensajes de Construccion en la parte inferior del IDE muestra la salida de cada construccion:
| Columna | Descripcion |
|---|---|
| Tipo | Icono de Error (rojo), Advertencia (amarillo) o Informacion (azul). |
| Archivo | Archivo fuente donde se origino el mensaje. |
| Linea | Numero de linea del problema. |
| Mensaje | Descripcion del error del compilador o enlazador. |
Haz doble clic en cualquier error en el panel de Mensajes de Construccion para saltar directamente a esa linea en el editor de codigo. El editor resalta la linea problematica para identificacion rapida.
Atajos de Teclado
| Atajo | Accion |
|---|---|
| F9 | Compilar y ejecutar |
| Ctrl+F9 | Solo compilar (no ejecutar) |
| Shift+F9 | Reconstruir todo (limpieza + compilacion completa) |
| F5 | Iniciar depuracion (compilar con banderas de depuracion) |
| Ctrl+Shift+B | Construir solo el archivo actual |
Soporte Multi-Compilador
HarbourBuilder soporta multiples compiladores C para el paso de enlazado. Elige el que mejor se adapte a tu plataforma y licenciamiento:
| Compilador | Plataformas | Licencia | Notas |
|---|---|---|---|
| MSVC (Microsoft Visual C++) | Windows | Propietario (Build Tools gratis disponibles) | Recomendado para Windows. Mejor rendimiento y compatibilidad. |
| BCC (Borland C++ Compiler) | Windows | Propietario (version gratis disponible) | Soporte legacy. Compatible con compilaciones Harbour mas antiguas. |
| GCC | Linux, macOS (via Xcode) | GPL | Predeterminado en Linux. Disponible en macOS via Homebrew o Xcode. |
| Clang | macOS, Linux | BSD-style | Recomendado para macOS. Parte de Xcode Command Line Tools. |
Reconstruccion Inteligente
HarbourBuilder usa un sistema de seguimiento de dependencias para evitar recompilaciones innecesarias:
- Timestamps de modificacion de archivos — solo los archivos .prg modificados desde la ultima construccion se recompilan.
- Seguimiento de dependencias de inclusion — si un archivo de cabecera .ch cambia, todos los archivos .prg que lo incluyen (#include) se recompilan.
- Validacion de archivos de objeto — los archivos .o / .obj se reutilizan si su fuente no ha cambiado.
- Enlazado incremental — el enlazador solo re-enlaza archivos de objeto cambiados cuando es posible.
Presiona F9 para una construccion inteligente (solo archivos cambiados). Presiona Shift+F9 para una reconstruccion completa (limpiar todo y recompilar todos los archivos). Usa una reconstruccion completa despues de cambiar configuraciones del compilador, agregar dependencias de bibliotecas, o cuando las construcciones incrementales producen resultados inesperados.
Opciones del Proyecto
Configura tus ajustes de construccion mediante Proyecto > Opciones:
| Categoria | Opciones |
|---|---|
| Compilador | Banderas de Harbour: -n2, -w3, -gc, -gl, -gh, -b, y banderas personalizadas. |
| Compilador C | Seleccionar compilador (MSVC/BCC/GCC/Clang), rutas de inclusion, definiciones, nivel de optimizacion. |
| Enlazador | Rutas de bibliotecas, bibliotecas adicionales, subsistema (consola/GUI), nombre del archivo de salida. |
| Recursos | Archivo de icono, manifiesto, archivos incorporados, banderas del compilador de recursos. |
| Salida | Directorio de salida, nombre del ejecutable, directorio de trabajo, argumentos de linea de comandos. |
| Depuracion | Habilitar construccion de depuracion (-gh -b), generar archivo de mapa, salida de simbolos. |
Directorio de Salida de Construccion
Por defecto, la salida compilada va a la carpeta output/ dentro de tu proyecto.
Puedes personalizar esto en Opciones del Proyecto:
| Archivo | Descripcion |
|---|---|
miapp.exe | La aplicacion compilada (Windows) o binario (macOS/Linux). |
miapp.hrb | Archivo de bytecode (cuando se compila con bandera -b para depuracion). |
miapp.map | Archivo de mapa del enlazador (si esta habilitado en opciones del proyecto). |
*.o / *.obj | Archivos de objeto intermedios (conservados para reconstruccion inteligente). |
Para distribucion, haz una reconstruccion limpia (Shift+F9) sin banderas de depuracion (-gh -b). Esto produce un ejecutable mas pequeno y rapido sin simbolos de depuracion incorporados.