2013-02-01 3 views
7

Ich versuche, D_GLIBCXX_DEBUG und DNDEBUG Flags zu verstehen.Wo finde ich weitere Informationen zu den Flags D_GLIBCXX_DEBUG und DNDEBUG?

Aber ich kann keine Informationen über sie finden.

Kann jemand erklären, was sie tun? und wo kann ich mehr über sie lesen?

+0

Es ist eigentlich '_GLIBCXX_DEBUG' und' NDEBUG' ohne das 'D'. – ipc

+0

Was sind diese Makros? –

+2

Ich habe dir die richtigen Namen gegeben, jetzt sind sie im Internet leicht durchsuchbar. – ipc

Antwort

5

Beide verwenden -D, die definiert das Makro nach gegeben. Wenn NDEBUG definiert ist, überprüft assert sein Argument nicht.

Wenn _GLIBCXX_DEBUG definiert ist, aktiviert er in debug modelibstdc++ (libstdc++ verursacht Kontrollen verschiedene Operationen durchzuführen).

+0

Also schreiben Sie '-DNDEBUG' und' -D_GLIBCXX_DEBUG', wenn Sie den Compiler über die Befehlszeile beschwören, richtig? – shuhalo

+0

@shuhalo: Ja, wenn die Makros 'NDEBUG' und' _GLIBCXX_DEBUG' während der Kompilierung definiert werden sollen. – Mankarse

Verwandte Themen