Universidad Nacional de Colombia - Sede Bogotá
Facultad de Ingeniería
Curso: Modelos y Simulación
Tutorial Codeblocks
Tutorial: Solución de errores de compilación y enlazado en Code::Blocks
Este tutorial describe el proceso para solucionar errores de tipo undefined reference y
cannot find .o al trabajar con múltiples archivos en C (como el generador lcgrand).
Paso 1: Creación del entorno de trabajo
Para que Code::Blocks reconozca todos los archivos, no basta con abrirlos sueltos; es
obligatorio trabajar dentro de un proyecto.
● Acción: Ir a File > New > Project... > Console Application y seguir el
asistente para crear un proyecto de C.
●
● Pantallazo del menú de selección de proyecto.
Paso 2: Organización de archivos del simulador
Debes integrar al proyecto tanto el código principal como las librerías externas.
● Acción: Hacer clic derecho sobre el nombre del proyecto en el panel izquierdo y
seleccionar Add files.... Añadir main.c, lcgrand.c, lcgrand.h, etc.
Asegúrate de que los archivos .c queden dentro de la carpeta azul Sources. En
Facultad de Ingeniería - Departamento de Ingeniería de Sistemas e Industrial
general se deben agregar todos los archivos excepto los .o, y asegurarse de que todas
las carpetas creadas del proyecto sean azules, no verdes, si una carpeta está en verde
significa que no está siendo tenida en cuenta para compilar el proyecto.
●
● Imagen sugerida: Pantallazo del panel lateral "Management" mostrando todos los
archivos del proyecto.
Paso 3: Definir el punto de entrada
El archivo main.c creado por defecto por el asistente debe ser reemplazado por tu lógica de
simulación.
● Acción: Copiar el código de tu archivo .c original y pegarlo dentro del main.c
generado por el proyecto.
●
● Imagen sugerida: Pantallazo del editor de texto con el código pegado en el archivo
main.c.
Paso 4: Configuración de rutas absolutas
2 Universidad Nacional de Colombia - Sede Bogotá
Facultad de Ingeniería - Departamento de Ingeniería de Sistemas e Industrial
Para evitar que el compilador se pierda buscando librerías o archivos de datos, lo más seguro
es indicarle la ruta completa en el disco.
● Acción: En los #include de cabeceras locales y en las funciones que abren
archivos (como fopen), en el include, escribir la ruta con solo un slash, en el resto
del código, escribir la ruta completa con doble slash (ejemplo:
C:\\Proyectos\\Simulacion\\lcgrand.h).
●
●
● Pantallazo de las líneas del código donde se ven las rutas completas.
Paso 5: Limpieza de archivos temporales (Others)
Los archivos de objeto .o son generados automáticamente por Code::Blocks. Si los agregas
manualmente, el enlazador fallará.
● Acción: En el panel de proyecto, abrir la carpeta Others. Eliminar cualquier archivo
con extensión .o. Importante: Mantener únicamente los archivos .in (entrada) y
.out (salida).
●
● Pantallazo del panel izquierdo mostrando la carpeta Others limpia, solo con los
archivos de texto.
Paso 6: Compilación limpia y ejecución
Es necesario borrar rastros de compilaciones fallidas anteriores para generar el nuevo
ejecutable.
3 Universidad Nacional de Colombia - Sede Bogotá
Facultad de Ingeniería - Departamento de Ingeniería de Sistemas e Industrial
● Acción: Ir al menú superior Build y seleccionar Clean. Luego, seleccionar
Rebuild workspace. Finalmente, presionar el botón de Build and run
(engranaje y triángulo verde).
●
● Pantallazo de la pestaña Build messages vacía o con el mensaje de "0 errors, 0
warnings".
Paso 7: Verificación de resultados
Una vez que el programa corre, el resultado final se guarda en el archivo de salida.
● Acción: Abrir el archivo .out dentro de Code::Blocks o desde la carpeta del
proyecto para verificar los datos generados por la simulación.
●
4 Universidad Nacional de Colombia - Sede Bogotá
Facultad de Ingeniería - Departamento de Ingeniería de Sistemas e Industrial
●
● Si cambiamos el archivo .in para que hayan 3 simulaciones podemos observar que en
el archivo .out el output cambia para mostrar los detalles de las 3 simulaciones
realizadas.
5 Universidad Nacional de Colombia - Sede Bogotá