Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

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.

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

  • Autor

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?

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.