Hallo ich habe eine Frage ich habe ein Programm geschrieben, wenn ich es das erste mal compliere geht das programm beim 2ten mal compilieren ohne etwas im quelltext zu verändern kommt folgende Fehlermeldung: Linker-Vorgang läuft... scale.obj : error LNK2005: "int discard_levels_calc" (?discard_levels_calc@@3HA) bereits in mj2.obj definiert CMotionJpeg2000\ResolutionProjekt\scale\bin\scale.exe : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden. an was könnte das liegen. Gruß Heiner
1. Das sieht nach Visual C++ aus, also ab ins passende Forum.
2. Hast du ein Visual-Studio-Projekt oder verwendest du ein Makefile?
3. Wenn du erneut kompilierst ohne etwas am Source zu ändern, wird das normalerweise erkannt und es findet überhaupt nichts statt. Das ist (unter anderem) der Sinn der Projektverwaltung. Die Frage ist: Wieso wird bei dir neu übersetzt oder zumindest neu gelinkt?
4. Was machst du, um aus dem Fehler wieder rauszukommen, sprich dein Projekt in den Zustand zu bringen, in dem es funktioniert?
@ao genau das hatte ich auch schon mal würde mich brennend interessieren wie man da wieder rauskommt, bzw was genau das ist...
ich konnte allerdings immer so 2-4 mal kompilieren bis er mir gesagt hat er will nicht mehr... dann hab das projekt gelöscht und schnell neu angelegt und es ging wieder... -- ...fleißig wie zwei Weißbrote
Ja es ist eine MFC Anwendung mit einem Visual Studio Projekt. Um das Projekt wieder zum laufen zu bringen lösche ich die beim Fehler angegeben aus der Headerdatei und gebe sie als lokale Variable an kompiliere und dann geht es wieder nur habe ich sie dann nicht mehr als globale Variable. Wenn ich diese Änderung wieder rückgangig mache lässt sich das Programm wieder einmal kompilieren. (Alles neu erstellen). Wenn ich das zweite mal alles neu erstelle bringt er wieder die Fahlermeldung.
mal davon abgesehen das man globals nicht verwenden sollte würde ich vermuten das du das teil irgendwo zweimal definiert hast...
du darfst das nur an einer stelle definieren und an allen anderen stellen musst du es definieren also mit einem extern davor... vielleicht ist das ja dein problem -- ...fleißig wie zwei Weißbrote
hi ich denke mal das du irgendwo in einem der header #pragma once vergessen hast, dann will er beim linken das nochmals mitlinken und das führt zu obigen fehlern -- class God : public ChuckNorris { };