Wie zu verwenden: #ifdef _DEBUG auf Linux?
Ich habe ein problem mit makro _DEBUG auf Linux-C++.
Ich habe versucht, so etwas wie dieses:
#ifdef _DEBUG
cout << "Debug!" << endl;
#endif
Aber es funktioniert nicht, wenn ich wählen Sie Debuggen in der IDE. Aber es funktionierte auf Windows.
Ich benutze Eclipse IDE für C++ Programmierung auf Linux.
- Du musst in die Eigenschaften des Projekts und sehen, was Eclipse set für pre-Prozessor-flags in release und debug-Varianten. Vielleicht kannst _DEBUG selbst.
- hast du eclipse unter windows?
- Fügen Sie die üblichen Gewohnheit, mindestens mit
<assert.h>
und die standard -assert
makro zu definierenNDEBUG
wenn Sie nicht möchten, debugging - Check _DEBUG vs NDEBUG
- Ich Tat es nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie cmake legen Sie die folgenden in Ihrer top-level - CMakeLists.txt Datei
gefunden auf CMake-Mailingliste
Unter windows waren Sie wahrscheinlich mit Visual Studio, das automatisch definiert die _DEBUG - symbol, wenn die Erstellung der Lösung in den Debug-Modus. Symbole sind in der Regel festgelegt, dass beim Aufruf der compiler, und dann werden Sie während der pre-processor-phase.
Zum Beispiel, wenn Sie mit dem GCC Compiler über die Kommandozeile und die Sie wiederverwenden möchten, das symbol _DEBUG, weil Sie mit einem bereits etablierten codebase können Sie definieren es mit der -D parameter über die Kommandozeile.
Kompilieren Sie diese mit der folgenden Befehlszeile
geben das folgende Ergebnis
Ihre beste Wette für das eclipse cdt-allerdings könnte es sein, ändern Sie die Pfade und Symbole Eigenschaften in den Projekt-Eigenschaften.
Setzen
#define _DEBUG
irgendwo nördlich von wo haben Sie dieses snippet, oder in den Einstellungen Ihres Projektes.#define _DEBUG
... Lesen einige der MSVC doco für Ihren compiler oder Ihre STL-Sammlung.