|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Blubb-Tec JLI'ler
Alter: 33 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 17.08.2005, 13:03 Titel: mehrfach definierte Symbole gefunden |
|
|
die global.h inkludiert nur so sachen wie <iostream>,<windows.h>,usw...
alle meine header besitzen IncludeGuards, kein #pragma once,
sonder #define-'strukturen'
hat jemand eine Idee?? _________________ www.planlos.de |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 17.08.2005, 13:21 Titel: |
|
|
Hmm...ich kann gerade keinen Fehler entdecken.
Vielleicht liegts ja gar nicht an der Einbindungsstruktur. Hast du vielleicht irgendwas in main.cpp/global.h/reader.h doppelt? Anders kann ich mir das gerade nicht erklären o_o _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Blubb-Tec JLI'ler
Alter: 33 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 17.08.2005, 13:31 Titel: |
|
|
hab nix doppeltes gefunden, das geht aber, wenn ich die operatoren in einer header-datei, und nich in einer .cpp-datei definiere, oder? _________________ www.planlos.de |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 17.08.2005, 13:46 Titel: |
|
|
alle .obj(oder nur die betreffenden, meinungssache), einfach den ganzen debug/release-Ordner löschen und dann im code Erstellen Alles neu erstellen...
Fehler noch da
Gruß DirectXer |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 17.08.2005, 14:20 Titel: |
|
|
also ich weiß nicht wie das mit operatoren läuft. aber funktionen musst du im header als extern deklarieren. und dann in einer beliebigen cpp datei EIN MAL definieren. |
|
Nach oben |
|
|
Blubb-Tec JLI'ler
Alter: 33 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 17.08.2005, 14:28 Titel: |
|
|
also das mit den funktionen funzt meines wissens nach auch ohne EXTERN, und das mit alle .obj dateien löschen, + alles neu erstellen hat leider net gefunzt...
P.S: JUHU! es funktioniert!!
musste nur die in reader.h definierten operatoren folgendermaßen implementieren:
CPP: | class test
{
private:
int i;
public:
friend ostream& operator << (ostream& os, test& ctest);
};
ostream& operator << (ostream& os, test& ctest)
{
cout << test.i;
return os;
}
|
_________________ www.planlos.de |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 17.08.2005, 15:26 Titel: |
|
|
Doppelt definierte Symboile treten dann auf, wenn mehr als ein Prototyp exisitert. Beispiel: In einem Header hast du zu stehen: Code: | // Includeguard - wie auch immer
int i; | Wenn dieser Header von mehreren C- oder H-Dateien eingebunden wird, passiert nix, da i nur ein Prototyp ist. i kann in einer C-Datei einen Wert zugewiesen bekommen. - Kein Problem...
Ist aber:im Header enthalten, ist das ganze eine Variable, und kein Prototyp mehr.
Jetzt wird beim Kompilieren das Symbol i in jeder Objekt-Datei erstellt, die diesen Header benutzt. Und der Linker bemerkt dann das doppelte Symbol und meckert rum.
Mit EXTERN kann man diese Warnung zwar umgehen - dann weiss der Linker "Hey, das soll wohl das gleiche Symbol sein" - aber das gehört eigentlich verboten - Große Fehlerquelle!
HTH AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Blubb-Tec JLI'ler
Alter: 33 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 17.08.2005, 15:38 Titel: |
|
|
gut das zu wissen _________________ www.planlos.de |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|