Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Inclusion de .h en main.c

Estas en el tema de Inclusion de .h en main.c en el foro de C/C++ en Foros del Web. Buenas, tengo un pequeño problema con la inclusion de archivos de cabecera en mi programa. El codigo del main.c es este: Código: #include <stdio.h> // ...
  #1 (permalink)  
Antiguo 02/03/2011, 13:14
 
Fecha de Ingreso: marzo-2011
Ubicación: Seseña
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta Inclusion de .h en main.c

Buenas, tengo un pequeño problema con la inclusion de archivos de cabecera en mi programa.

El codigo del main.c es este:
Código:
#include <stdio.h>      // La libreria de entrada/salida
#include <stdlib.h>     // La libreria estandar de C
#include <string.h>     // La libreria de tratamiento de cadenas de caracteres
#include "Cargador.h"	//Clase creada por nosotros que se encarga de la gestion del tablero

int main(int argc, char** argv){
	if(argc>=2)
		cargar(argv[1]);
	else
		cargar("default.cfg");
	return 0;
}
Como podeis ver hago un #include "Cargador.h" que es otro archivo donde tengo el resto del codigo.

En este caso es este:
Código:
#include <stdio.h>      // La libreria de entrada/salida
#include <stdlib.h>     // La libreria estandar de C
#include <string.h>     // La libreria de tratamiento de cadenas de caracteres
#include <malloc.h>
#include <ctype.h>
#ifndef CARGADOR_H_
#define CARGADOR_H_
typedef struct{
	int ancho,alto,linea;
	#define min_puertas 1;
} Puerta;
typedef struct {
	int ancho,alto,puntuacion,linea;
} Tesoro;
typedef struct {
	int ancho,alto,linea;
} Enemigo;
typedef struct {
	int ancho1,alto1,ancho2,alto2,linea;
} Muro;
typedef struct {
	int ancho,alto,linea;
} Roca;
typedef struct {
	int ancho,alto,linea;
} Dimensiones;
typedef struct {
	int error_linea;
	int cod_error;
} Estruc_error;
typedef struct {
	Dimensiones * dimension;
	Puerta * puertas;
	Tesoro * tesoro;
	Enemigo * enemigo;
	Muro * muro;
	Roca * roca;
	Estruc_error * errores;
	int con_P,con_T,con_E,con_M,con_R,con_Err;
} Tablero;

void menu(Tablero * tablero);
void cargar(char* nombre);
void liberarTablero(Tablero * tablero);
void generaEnemigo(char* linea,int cont,Tablero * tablero);
void generaTesoro(char* linea,int cont,Tablero * tablero);
void generaMuro(char* linea,int cont,Tablero * tablero);
void generaRoca(char* linea,int cont,Tablero * tablero);
void generaPuerta(char* linea,int cont,Tablero * tablero);
void procesar_linea(char* linea,int cont,Tablero * tablero);
void limpiar();
void generaDimensiones(char* linea,int cont,Tablero * tablero);
void generaError(int cod,int cont,Tablero * tablero);
#endif /* CARGADOR_H_ */
Actualmente utilizo eclipse para programar y hay no me da error ni warning pero cuando lo hago desde la consola de ubuntu 10.10 me da el siguiente error:

Código:
/home/xxxx/workspace/pacman/main.c:39: undefined reference to `cargar'
/home/xxxx/workspace/pacman/main.c:41: undefined reference to `cargar'
Sin embargo si en el main cambio el include y lo hago del archivo Cargador.c no me da error en la consola de Ubuntu y si en la de Eclipse, ¿Como puedo solucionar esto? a lo mejor es un error de novato, pero es mi primer programa en C y estoy un poco verde.

Agradeceria cualquier tipo de ayuda o referencia acerca de este error, saludos.
  #2 (permalink)  
Antiguo 02/03/2011, 17:50
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Inclusion de .h en main.c

desde la consola de linux deberias compilar de esta manera:

gcc Cargador.c main.c
  #3 (permalink)  
Antiguo 02/03/2011, 17:59
 
Fecha de Ingreso: marzo-2011
Ubicación: Seseña
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Inclusion de .h en main.c

Gracias, como bien apuntas era un error que habia cometido en el makefile pues no creaba los objetos de cargador.c, con tu indicacion lo he solucionado en un segundo.

Gracias.

Tema solucionado, si algun moderador lo quiere cerrar, el tema esta zanjado.

Última edición por gregory7885; 02/03/2011 a las 18:00 Razón: Peticion de cierre

Etiquetas: c/c++, inclusion, main, reference, undefined, cabeceras
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.