Compilieren will nicht
-
#include "elem.h" am Anfang der liste.c einfügen
BTW viel Glück, wenn du versuchst einen zu finden, der das für dich testet. Ich hab keine Lust dazu.
-
liste1.c C:\Dokumente und Einstellungen\Oliver Mladenovic\Desktop\liste1.o(.data+0x0)
multiple definition of `ende'da kommen lauter so sachen nach dem ich da die libs eingesetzt habe
-
ELEMENT *ende = NULL; ELEMENT *anfang=NULL;
Das ist eine Definition, die gehört da nicht hin. Das steht dann in beiden .c Dateien drin.
So muss das in elem.h stehen:
ELEMENT *ende; ELEMENT *anfang;
Und so wie oben in der list1.c
-
CarstenJ schrieb:
So muss das in elem.h stehen:
ELEMENT *ende; ELEMENT *anfang;
Das sind immer noch Definitionen. Schreib in beide Zeilen noch jeweils ein "extern", um reine Deklarationen daraus zu machen.
-
Ok Danke erstmal! ICh habe das so gemacht das ich die elem.h so verbessert habe:
ELEMENT *anfang;
ELEMENT *ende;und ganz am anfang in der liste1.c habe ich dann die Definition eingesetzt. Jetzt kopiliert er es aber wenn ich das Programm starte frist es den ganzen speicher auf 99 % Systemauslastung und ich sehe keine console wie es normaler weise ist.
Wie soll ich das mit extern machen?
-
Hat Bashar doch schon geschrieben. Wie du siehst keine Console? Was siehst du denn?
-
ich sehe alles so als ob ich nichts gestartet habe, wie soll ich das den mit extern machen etwa: extern ELEMENT *anfang; ?
-
Ja, genau so. Also bei mir läuft das Programm und ich benutze auch den Dev-Cpp.
-
Kansst du den Code mal Posten? Ich kriege es einfach nicht hin , hast du auch bei der liste1.c diese libs eingestzt?
#include "elem.h"
#include <stdio.h>
#include <stdlib.h>
-
Sag mir wenigstens was du alles gemacht hast... angefangen bei dem Quellcode oben.
-
listmain.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "elem.h" int main(int argc,char *argr[]) { ...
elem.h
#ifndef ELEM_H #define ELEM_H typedef struct element { double zahl; struct element *next; }ELEMENT; extern ELEMENT *ende; extern ELEMENT *anfang; extern ELEMENT *create_list_element(ELEMENT *ptr); extern void add_element_after (double wert); extern void add_element_before (double wert); extern void forward(ELEMENT *aktuelles); extern void backward(ELEMENT *aktuelles); #endif
liste1.c
#include <stdio.h> #include "elem.h" ELEMENT *ende=NULL; ELEMENT *anfang=NULL; ELEMENT *create_list_element(ELEMENT *ptr) ...
So siehts aus, und es läuft.