elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Ayuda] Error Multiple definition of en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Error Multiple definition of en C  (Leído 5,527 veces)
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
[Ayuda] Error Multiple definition of en C
« en: 5 Septiembre 2014, 22:08 pm »

Buenas gente. Estoy haciendo ejercicios y hay un error al cual no le encuentro sentido... El error dice tal que así:

Citar
Description                                                Resource   Path                   Location   Type
first defined here                                        LinkedList.c   /Examenes/src   line 14   C/C++ Problem
first defined here                                        LinkedList.c   /Examenes/src   line 18   C/C++ Problem
first defined here                                        LinkedList.c   /Examenes/src   line 41   C/C++ Problem
multiple definition of `AnadirProceso'        LinkedList.c   /Examenes/src   line 18   C/C++ Problem
multiple definition of `Crear'                        LinkedList.c   /Examenes/src   line 14   C/C++ Problem
multiple definition of `MostrarLista'                LinkedList.c   /Examenes/src   line 41   C/C++ Problem


En un principio el fallo está claro. Pero por más que miro no veo ninguna redefinición. El código es de una Linked List Circular Os dejo aquí el header:

Código
  1. #ifndef LINKEDLIST_H_
  2. #define LINKEDLIST_H_
  3.  
  4. typedef struct Linked_List* LProc;
  5.  
  6. struct Linked_List {
  7. unsigned valor;
  8. LProc sig;
  9. LProc ejecucion;
  10.  
  11. };
  12. //Crea una lista de procesos vacía.
  13. void Crear (LProc *lista);
  14.  
  15. //Añade el proceso con identificador idproc a la lista de procesos disponibles para ejecución.
  16. //Este proceso se añade como nodo anterior al nodo al que apunta ejecución.
  17. void AnadirProceso (LProc *lista, int idproc);
  18.  
  19. //Muestra la lista de los procesos que están disponibles para la ejecución.
  20. void MostrarLista( LProc lista);
  21.  
  22. //Simula la ejecución del proceso apuntado por ejecución, eliminándolo de la lista de procesos.
  23. void EjecutarProceso(LProc *lista);
  24.  
  25.  
  26. #endif /* LINKEDLIST_H_*/
  27.  

Aquí el .c
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "LinkedList.h"
  4.  
  5.  
  6. void Crear (LProc *lista) {
  7. lista = NULL;
  8. }
  9.  
  10. void AnadirProceso (LProc *lista, int idproc) {
  11. LProc* aux = lista;
  12.  
  13. if(aux == NULL){
  14.  
  15. LProc nuevo = (LProc)malloc(sizeof(struct Linked_List));
  16. nuevo->valor = idproc;
  17. nuevo->sig   = nuevo;
  18. nuevo->ejecucion = nuevo;
  19. } else {
  20.  
  21. LProc nuevo = (LProc)malloc(sizeof(struct Linked_List));
  22. nuevo->valor = idproc;
  23. nuevo->sig   = (*lista)->ejecucion;
  24. nuevo->ejecucion = (*lista)->ejecucion;
  25.  
  26. while((*aux)->sig != *lista)
  27. (*aux) = (*aux)->sig; //Hacemos de aux el anterior a lista
  28.  
  29. (*aux)->sig = nuevo;
  30. }
  31. }
  32.  
  33. void MostrarLista( LProc lista) {
  34. LProc aux = lista;
  35. while(aux->sig!=lista) {
  36. printf("%d ", aux->valor);
  37. }
  38. fflush(stdout);
  39. }
  40.  

Y aquí el main:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "LinkedList.c"
  4.  
  5.  
  6.  
  7. int main () {
  8.  
  9. LProc list;
  10.  
  11. Crear(&list);
  12. MostrarLista(list);
  13.  
  14. AnadirProceso(&list, 3);
  15. AnadirProceso(&list, 8);
  16. AnadirProceso(&list, 1);
  17. AnadirProceso(&list, 14);
  18. AnadirProceso(&list, 0);
  19.  
  20. printf("Despues de introducir: 3, 8, 1, 14, 0 la lista es es \n");
  21.  
  22. MostrarLista(list);
  23. fflush(stdout);
  24. system("PAUSE");
  25.        return 0;
  26. }
  27.  

Espero que podais ayudarme. Uso Eclipse Luna con CDT y Mingw.

Muchas gracias ;)


« Última modificación: 6 Septiembre 2014, 11:51 am por NikNitro! » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Ayuda] Error Multiple definition of en C
« Respuesta #1 en: 5 Septiembre 2014, 23:53 pm »

¿Es intencional esto?

#include "LinkedList.c"


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: [Ayuda] Error Multiple definition of en C
« Respuesta #2 en: 6 Septiembre 2014, 09:35 am »

Es como se llama mi. C para asi poder hacer uso de esa estructura en el main... Algo mal? :s
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Ayuda] Error Multiple definition of en C
« Respuesta #3 en: 6 Septiembre 2014, 10:48 am »

Tenes que incluir la cabecera, el archivo .H, no el de codigo .C (por eso te dice que estas definiendo esas funciones 2 veces, una al compilar LinkedList.c y otra al compilar el main por incluir LinkedList.c).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: [Ayuda] Error Multiple definition of en C
« Respuesta #4 en: 6 Septiembre 2014, 11:51 am »

Ok gracias. Ahora al menos compila.. xD

Nos vemos;)
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Ayuda] Error Multiple definition of en C
« Respuesta #5 en: 6 Septiembre 2014, 15:01 pm »

De nada.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines