[Erledigt] Link Fehler



  • Hallo Leute,

    ich habe die structs:

    typedef struct {puint color,size,code;std::string comment;} topoproperty;
    topoproperty propdefault = {1,1,1,"Default Topoobject Comment"};
    topoproperty propcoord = {1,1,1,"Default Topoobject Comment"};
    topoproperty propknot = {1,1,1,"Default Knot Comment"};
    topoproperty propedge = {1,1,1,"Default Edge Comment"};
    topoproperty propface = {1,1,1,"Default Face Comment"};
    

    nur in einer header datei. Trotzdem bekomme ich diese Link Fehler:

    1>geotopology.obj : error LNK2005: "struct topoproperty propedge" (?propedge@@3Utopoproperty@@A) already defined in topoobject.obj
    1>geotopology.obj : error LNK2005: "struct topoproperty propcoord" (?propcoord@@3Utopoproperty@@A) already defined in topoobject.obj
    1>geotopology.obj : error LNK2005: "struct topoproperty propdefault" (?propdefault@@3Utopoproperty@@A) already defined in topoobject.obj
    1>geotopology.obj : error LNK2005: "struct topoproperty propface" (?propface@@3Utopoproperty@@A) already defined in topoobject.obj
    1>geotopology.obj : error LNK2005: "struct topoproperty propknot" (?propknot@@3Utopoproperty@@A) already defined in topoobject.obj
    1>app.obj : error LNK2005: "struct topoproperty propedge" (?propedge@@3Utopoproperty@@A) already defined in topoobject.obj
    1>app.obj : error LNK2005: "struct topoproperty propcoord" (?propcoord@@3Utopoproperty@@A) already defined in topoobject.obj
    1>app.obj : error LNK2005: "struct topoproperty propdefault" (?propdefault@@3Utopoproperty@@A) already defined in topoobject.obj
    1>app.obj : error LNK2005: "struct topoproperty propface" (?propface@@3Utopoproperty@@A) already defined in topoobject.obj
    1>app.obj : error LNK2005: "struct topoproperty propknot" (?propknot@@3Utopoproperty@@A) already defined in topoobject.obj
    1>frame.obj : error LNK2005: "struct topoproperty propedge" (?propedge@@3Utopoproperty@@A) already defined in topoobject.obj
    1>frame.obj : error LNK2005: "struct topoproperty propcoord" (?propcoord@@3Utopoproperty@@A) already defined in topoobject.obj
    1>frame.obj : error LNK2005: "struct topoproperty propdefault" (?propdefault@@3Utopoproperty@@A) already defined in topoobject.obj
    1>frame.obj : error LNK2005: "struct topoproperty propface" (?propface@@3Utopoproperty@@A) already defined in topoobject.obj
    1>frame.obj : error LNK2005: "struct topoproperty propknot" (?propknot@@3Utopoproperty@@A) already defined in topoobject.obj
    1>pic.obj : error LNK2005: "struct topoproperty propedge" (?propedge@@3Utopoproperty@@A) already defined in topoobject.obj
    1>pic.obj : error LNK2005: "struct topoproperty propcoord" (?propcoord@@3Utopoproperty@@A) already defined in topoobject.obj
    1>pic.obj : error LNK2005: "struct topoproperty propdefault" (?propdefault@@3Utopoproperty@@A) already defined in topoobject.obj
    1>pic.obj : error LNK2005: "struct topoproperty propface" (?propface@@3Utopoproperty@@A) already defined in topoobject.obj
    1>pic.obj : error LNK2005: "struct topoproperty propknot" (?propknot@@3Utopoproperty@@A) already defined in topoobject.obj
    

    Die einzige Datei in der ich sie nutze ist in der CPP zur Header Datei. So in etwa:

    Knot::Knot():Topoobject(propknot);
    // Zu diesem Konstruktor
    Topoobject::Topoobject(topoproperty new_property){
    	this->color = new_property.color;
    	this->size = new_property.size;
    	this->code = new_property.code;
    	this->comment = new_property.comment;
    }
    

    Was läuft da schief?



  • Der Typedef ist überflüssig. Außerdem, wenn der erste Codeabschnitt in einer Header-Datei ist, dann ist das böse. Denn du hast dort Variablendefinitionen. Wenn du diesen Header jetzt mehrfach einbindest, so werden die Variablen mehrfach definiert und du verletzt die one definition rule. Benutz mal die Forensuche nach Globalen Variablen.



  • Janjan schrieb:

    Der Typedef ist überflüssig. Außerdem, wenn der erste Codeabschnitt in einer Header-Datei ist, dann ist das böse. Denn du hast dort Variablendefinitionen. Wenn du diesen Header jetzt mehrfach einbindest, so werden die Variablen mehrfach definiert und du verletzt die one definition rule. Benutz mal die Forensuche nach Globalen Variablen.

    Das wird es wohl sein.
    Wo soll ich diese Definitionen reinstecken?



  • In die cpp.



  • darkfate schrieb:

    Wo soll ich diese Definitionen reinstecken?

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Janjan schrieb:

    Benutz mal die Forensuche nach Globalen Variablen.

    Ist das wirklich so schwer zu verstehen?



  • Janjan schrieb:

    ...

    Hör mal. Wenn es dich nervt, musst du nicht antworten, erst recht nicht andere mit deinen Frustrationen begießen. Dennoch danke.

    Michael E. schrieb:

    In die cpp.

    Danke auch.



  • darkfate schrieb:

    Janjan schrieb:

    ...

    Hör mal. Wenn es dich nervt, musst du nicht antworten, erst recht nicht andere mit deinen Frustrationen begießen. Dennoch danke.

    Ich hab dir die Antwort freundlich mitgeteilt. Dieses Problem wurde bereits zu genüge hier erklärt. Aber du bist scheinbar zu unfähig die simple Forensuche zu benutzen. Oder zu faul. Du bist Deutschland.



  • Janjan schrieb:

    Ich hab dir die Antwort freundlich mitgeteilt. Dieses Problem wurde bereits zu genüge hier erklärt. Aber du bist scheinbar zu unfähig die simple Forensuche zu benutzen. Oder zu faul. Du bist Deutschland.

    Hör auf herumzuheulen. Zu deiner Info.

    Ich habe die Forensuche benutzt.
    Das Suchwort "Globale Variablen" gibt nichts eindeutiges her.
    Jede Suchanfrage dauert in diesem Forum ein wenig.
    Die Antwort "in die cpp" wurde schneller abgegeben als ich die zweite Suchanfrage starten konnte.

    Die didaktisch schlechtesten Antworten überhaupt sind:
    -Lies dich erstmal durch Buch X,Y
    -Benutze Google
    -etc...

    Wenn man so eine Antwort im Sinne hat, sollte man es am besten sein lassen, dann ist man hier fehl am Platze.

    Wozu brauche ich dann so ein tolles Forum mit vielen fähigen Dauergästen (keine Ironie) wenn ich in der Quelle X,Y suchen/lesen könnte?



  • darkfate schrieb:

    ...

    Unabhängig vom Verhalten das Janjan hier vorgelegt hat, hat er dennoch nicht unrecht (Es hätte aber wirklich gereicht es einmal zu wiederholen) und mögliche Suchbegriffe wurde auch genannt (und zudem hervorgehoben).

    darkfate schrieb:

    Die didaktisch schlechtesten Antworten überhaupt sind:
    ...
    Wenn man so eine Antwort im Sinne hat, sollte man es am besten sein lassen, dann ist man hier fehl am Platze.

    Lies bitte [url=http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html]Wichtig: Du brauchst Hilfe?
    [/url].

    Das Forum soll keine Eigeninitiative ersetzen, und wie gesagt wurden sinnvolle Suchbegriffe genannt.

    darkfate schrieb:

    Wozu brauche ich dann so ein tolles Forum ... wenn ich in der Quelle X,Y suchen/lesen könnte?

    Warum sollten wir jemanden Antworten? Es ist unsere Zeit und unserer Aufwand, den wir betreiben. Ohne Frage sind wir hier um weiter zu helfen. Das kann aber auch ein Verweis auf passende Suchbegriffe oder weiterführende Literatur sein.

    Versteh mich nicht falsch: Wir wollen helfen. Aber kaum einer ist bereit zu helfen, wenn der Gegenüber keine Eigeninitiative an den Tag legt (Das ist verschwendete Liebesmüh, zumal Menschen mit dieser Einstellung mit sehr hoher Wahrscheinlichkeit auch kaum jemals ernsthaft Programmieren lernen).

    P.S: Zumal der oberste Treffer zu "one definition rule" auch sehr passend ist.



  • asc schrieb:

    ...

    Du springst zu sehr auf janjans Zug.
    Es ist nicht so das ich nebenbei mit den Ohren wackel und darauf warte bis jemand für mich die Antwort erledigt. So werden auch die meisten Fragenden nebenbei suchen.

    Nachdem der erste Suchbegriff nichts ergab, habe ich gefragt wo sie reingehören weil das Problem für mich schon fast gelöst war. Die Antwort kam bevor die zweite Suche beendet werden konnte.



  • Wenn's dich tröstet:
    Ich fand Janjan's Antwort auch...sagen wir mal überraschend 🙂



  • Jockelx schrieb:

    Wenn's dich tröstet:
    Ich fand Janjan's Antwort auch...sagen wir mal überraschend 🙂

    Mir geht es ganz gut. Ich bin diesem Forum sehr dankbar.. zumindest kenne ich nichts vergleichbar freundliches/kompetentes. Für Neulinge in C++ wie mich absolut klasse.

    Da kommt es auf den einen oder anderen User nicht an der gerade einen schlechten Tag erlebt.

    Aber die Vorurteile sind mMn so gut wie nie haltbar. Wenn ich eine Frage stelle, dann gehe ich nicht Kaffetrinken sondern beschäftige mich mit dem Problem und versuche es nebenbei selber zu lösen.

    Es ist dennoch in jedem Fall besser wenn jemand schnell auf den Fehler hinweist und ich es gleich lerne als wenn ich 100 Quellen durchsuchen muss.

    Wenn ich so mein Wissen weitergeben würde wie manch anderer hier:
    -Such bei Google
    -> Eine Google Suchanfrage schadet der Umwelt in nicht zu vernachlässigender Ordung.
    -Lies Buch X,Y
    -> Ist meine Daseinsberechtigung nur eine Lookup Tabelle für Bücher?

    Eins muss ganz klargestellt werden:
    Gegen konkrete Hinweise/Links/Buchkapitel(falls vorhanden) ist nichts einzuwenden.

    Da bin ich Usern wie "Michael E." sehr dankbar... manchmal ist die Antwort vor der Nase und man sieht sie einfach nicht. Didaktisch viel wertvoller weil man den Fragenden nicht frustriert und (in diesem Fall) Suchen/Diskutionen über Sinn und Unsinn erspart.



  • darkfate schrieb:

    Du springst zu sehr auf janjans Zug.

    Das Gefühl hatte ich auch bei dir, als ich die Antwort geschrieben hatte. Wie gesagt, lies bitte den genannten Thread mal durch (der nicht ohne Grund in diesen Unterforum festgepinnt ist) und schau dir mal ganz neutral sowohl deinen, als auch Janjans Post an. Ich finde das beide sehr arrogant sind (Dein Post auf das ich geantwortet hatte, deutet unabhängig wie du es gemeint hast, eine Faulheit an, die man in diesen Forum nicht unterstützen sollte).

    Es ist durchaus sinnvoll das man nicht immer alles neu schreiben soll, manchmal ist ein Verweis auf google usw. angebracht (zumal wenn man noch sinnvolle Suchbegriffe genannt werden).

    darkfate schrieb:

    Wenn ich so mein Wissen weitergeben würde wie manch anderer hier:
    -Such bei Google
    -> Eine Google Suchanfrage schadet der Umwelt in nicht zu vernachlässigender Ordung

    Und eine Antwort ggf. der Arbeitszeit etc.

    Und ein sinnvoller Suchbegriff ist genauso gut wie ein Link (Selbst bei google ist der erste Treffer bei "one definition rule" bereits sehr passend).



  • asc schrieb:

    ...

    Ich kann auch das x-te mal sagen dass ich nebenbei gesucht habe, anscheinen hast du es zum x-ten mal überlesen.

    Die Antwort von Michael E., wenige Buchstaben, ist daher wertvoller als diese ganze Diskussion.



  • darkfate schrieb:

    -Such bei Google
    -> Eine Google Suchanfrage schadet der Umwelt in nicht zu vernachlässigender Ordung.

    Das soll wohl ein Witz sein?[/quote]



  • Michael E. schrieb:

    Das soll wohl ein Witz sein?

    Nein leider nicht. Damit kann man eine 11W Birne eine Stunde lang betreiben.



  • Punkt 2: Allein für eine Suchanfrage bei Google sollen die Rechner des Unternehmens so viel Strom verbrauchen, wie benötigt wird, um ein Zimmer mit einer 11-Watt-Energiesparlampe eine Stunde lang zu beleuchten.

    Was ist dran? Google selbst macht dazu keine Angaben. Die Rechnung stammt vom Berliner Webhosting-Unternehmen Strato und beruht auf öffentlich zugänglichen, von 2005/2006 stammenden Daten zur Zahl der bei Google im Dauerbetrieb laufenden Server, deren vermutetem Stromverbrauch und der täglichen Suchanfragen. Inzwischen könne der Verbrauch durch den Einsatz neuerer, energieeffizienterer Server aber gesunken sein, heißt es von Strato. Rolf Kersten, Manager des Server-Herstellers Sun Microsystems, geht auf Basis der gleichen Zahlen wie Strato davon aus, dass der Energieverbrauch pro Google-Anfrage nur zwei bis acht Wattstunden beträgt.

    Quelle: http://www.tagesschau.de/inland/energieverbrauch2.html

    Was denkst du denn, wie viel Energie dadurch flöten geht, wenn du hier im Forum schreibst?



  • Recently, though, others have used much higher estimates, claiming that a typical search uses "half the energy as boiling a kettle of water" and produces 7 grams of CO2. We thought it would be helpful to explain why this number is *many* times too high. Google is fast — a typical search returns results in less than 0.2 seconds. Queries vary in degree of difficulty, but for the average query, the servers it touches each work on it for just a few thousandths of a second. Together with other work performed before your search even starts (such as building the search index) this amounts to 0.0003 kWh of energy per search, or 1 kJ. For comparison, the average adult needs about 8000 kJ a day of energy from food, so a Google search uses just about the same amount of energy that your body burns in ten seconds.

    http://googleblog.blogspot.com/2009/01/powering-google-search.html



  • Michael E. schrieb:

    Was denkst du denn, wie viel Energie dadurch flöten geht, wenn du hier im Forum schreibst?

    Hmm..
    ich wusste gar nicht das dieses Forum knapp
    1.5MServer und etwa 4M Workstations hat.

    Auch wusste ich nicht das man alle paar Tage eine
    Matrix in der Dimension von ~12Mrd mittels
    Ausgleichung invertieren muss...

    Michael E. schrieb:

    http://googleblog.blogspot.com/2009/01/powering-google-search.html

    Es ist gut gemeint aber:
    Informationen zur Umweltfreundlichkeit über Google
    sucht man sicherlich nicht bei Google selber.
    Es wäre Absurde Unternehmensführung wenn Google da
    nicht mit eigener Berechnung kommen würde.



  • darkfate schrieb:

    Michael E. schrieb:

    Was denkst du denn, wie viel Energie dadurch flöten geht, wenn du hier im Forum schreibst?

    Hmm..
    ich wusste gar nicht das dieses Forum knapp
    1.5MServer und etwa 4M Workstations hat.

    Ich wusste gar nicht, dass c-plusplus.net so viele Zugriffe hat wie google.com 🙄


Anmelden zum Antworten