CMake wird verwendet, um einige C ++ - Dateien zu kompilieren. Es gibt assert
Aufrufe im Code. Diese Aufrufe sind im Freigabemodus von CMake deaktiviert. Es definiert NDEBUG
im Release-Modus, denke ich.
Wenn ich daran interessiert bin, CMake im Release-Modus zu aktivieren, wie kann ich es aktivieren?
Wenn Sie an assert
Funktionalität nur in Ihrem eigenen Code interessiert sind, dann die einfache Lösung
ist es, benutzerdefinierte Assert bereitzustellen. Zum Beispiel:
Verwenden Sie option
, um die Aktivierung zu aktivieren / deaktivieren:
In diesem Fall haben Sie die volle Kontrolle über Ihre Schecks, Sie können dies überprüfen Komponente und andere ignorieren:
%Vor%Fügen Sie eine benutzerdefinierte CMAKE_BUILD_TYPE hinzu (siehe auch CMAKE_CONFIGURATION_TYPES ):
%Vor%Ausgabe:
%Vor%Siehe diese Antwort in der CMake-FAQ, d. h .:
Beheben Sie es manuell, indem Sie die Definition der Cache-Variablen CMAKE_C_FLAGS_RELEASE
und CMAKE_CXX_FLAGS_RELEASE
ändern. Dies muss jedes Mal getan werden, wenn Sie ein neues Build-Verzeichnis einrichten.
Um es dauerhaft zu beheben, erstellen Sie eine benutzerdefinierte CMake-Regeldatei in Ihrem Quellordner mit den gewünschten Einstellungen für die Freigabeflags (lassen Sie die Option /D NDEBUG
weg). Dann zeigen Sie in Ihrer äußersten CMakeLists.txt die Variable CMAKE_USER_MAKE_RULES_OVERRIDE
auf die benutzerdefinierte CMake-Regeldatei.