Narf! Geschrieben 27. Februar 2004 Geschrieben 27. Februar 2004 Hallo Mit-Compilierer! Kann mir jemand den Unterschied zwischen RELEASE und DEBUG erklären? Hat das Auswirkungen auf die Veröffentlichung eines Programms? Was kann das eine was das andere nicht kann? Zitieren
Klotzkopp Geschrieben 27. Februar 2004 Geschrieben 27. Februar 2004 Ganz grob: Debug: - enthält Symbolinformationen zum Debuggen - nicht optimiert - Assertions aktiv - Runtime-Checks aktiv Release: - enthält keine Symbolinformationen - optimiert (Größe, Geschwindigkeit) - Assertions entfernt - Runtime-Checks deaktiviert Das ist aber alles eine Frage der Projekteinstellungen. Man kann auch eine optimierte Version mit Debuginformationen erstellen. Veröffentlichen solltest du nur Release-Versionen. Bei MFC bist du dazu sogar praktisch gezwungen, weil du die Debug-Versionen der MFC nicht weitergeben darfst. Zitieren
FinalFantasy Geschrieben 29. Februar 2004 Geschrieben 29. Februar 2004 ich hab mir mal ein kleines Primzahlberechnungsprogramm geschrieben, dass die Zeiten mitstoppt. Kann die ja mal die Release und Debug Version schicken, dann siehst den Unterschied zwischen Debug und Release anhand der Dateigrösse und Geschwindigkeit. Achja, was Release nicht kann. Versuch doch mal im VisualStudio (falls du das hast) eine Releasekompilierte EXE zu debuggen... Zitieren
Narf! Geschrieben 1. März 2004 Autor Geschrieben 1. März 2004 Ach du Sch...!!! Gut, das ich nochmal gefragt habe. Und, wie soll es anders sein, habe ich ein Problem: AssertValid() scheint es im Release nicht zu geben. Ich bekomme beim Erstellen des Projektes (F7) diesen Fehler: ...(1845) : error C2039: 'AssertValid': Ist kein Element von 'CListBox' Aufgerufen mit m_CtrlList.AssertValid(); Was soll das? Ich habe die AssertValid()-Zeilen auskommentiert und ein Release erstellt. Die exe-Datei ist viel kleiner als mit Debug. Fehlen jetzt die statischen Bibliotheken? Wenn ja, woher weiß ich, welche ich mitgeben muss? Zitieren
Klotzkopp Geschrieben 1. März 2004 Geschrieben 1. März 2004 Original geschrieben von Narf! AssertValid() scheint es im Release nicht zu geben. Ich bekomme beim Erstellen des Projektes (F7) diesen Fehler: ...(1845) : error C2039: 'AssertValid': Ist kein Element von 'CListBox' Du solltest AssertValid nicht direkt aufrufen, sondern das Makro ASSERT_VALID benutzen, das wird für Release-Builds nicht ausgewertet. Die exe-Datei ist viel kleiner als mit Debug. Fehlen jetzt die statischen Bibliotheken? Die Release-Version ist durch die fehlenden Debuginformationen und die Optmierungen praktisch immer kleiner als die Debug-Version. Ob etwas fehlt, lässt sich also nicht allein an der Größe festmachen. Wenn statische Bibliotheken fehlen würde, würde sich allerdings der Linker beschweren. Wenn ja, woher weiß ich, welche ich mitgeben muss? Jetzt sprichst du vermutlich von den dynamischen Bibliotheken. Die MFC-Bibliotheken und die C-Runtime sollten zumindest für MSVC6 auf jedem halbwegs modernen Windows-System vorhanden sein. Die Abhängigkeiten deines Programms kannst du z.B. mit Depends prüfen, das beim Visual Studio dabei ist, aber auch kostenlos runtergeladen werden kann. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.