Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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.

Geschrieben

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...

Geschrieben

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?

Geschrieben
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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...