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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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