Cmake ignorieren CMAKE_BUILD_TYPE=Debug
Ich versuche zu zählen debug/release-abhängig compiler-flags, wie z.B.:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x -Wall -DUSE_BOOST")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CSS_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3")
Ich meine Ordner mit einem Befehl wie:
cmake -DCMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques
Allerdings scheint es mit CMAKE version 2.8.7, CMAKE_BUILD_TYPE ignoriert wird. Es scheint zu funktionieren perfekt mit der version 2.8.4 (auf einem anderen Rechner), so hat diese Methode veraltet ist oder gibt es ein anderes problem hier?
Zenna
- Es ist nicht veraltet. Wie sind Sie mit der Beurteilung, dass es ignoriert wird?
- Keine debug-Symbole in der ausführbaren Datei, und wenn ich schlechte Befehle z.B.(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wand viele schlechte Befehle"), gibt es keinen Effekt.
- Must read: cmake.org/pipermail/cmake/2008-September/023808.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Tippfehler. Dein code sagt
CMAKE_CSS_FLAGS_RELEASE
. Beachten SieCSS
sollte esCXX
.Das problem war, dass es muss ein Leerzeichen zwischen den
-D
und die variable. Das heißt, es sollte sein:-D <var>:<type>=<value>
CMAKE_CXX_FLAGS_DEBUG
enthalten-g
? Wenn Sie wieder die gleiche build-Verzeichnis, es ist möglich, dass ungültige Werte in der variable cache wiederverwendet wurden.RELEASE
undRelease
äquivalent?CMAKE_BUILD_TYPE
im Fall nicht definiert auf der Kommandozeile?Ich denke, dass Sie einen Tippfehler gemacht, In CMAKE_BUILD_TYPE in der vorherigen version. Wir hatten das porblem und hier eine Linie, die funktioniert.
Können Sie überprüfen, dass jeder die Dinge gingen gut mit:
Mit diesem Befehl kann Ihnen den richtigen Weg, um den Namen der variable CMAKE_BUILD_TYPE.
Glück.
Warum bist du nicht mit
-DCMAKE_BUILD_TYPE=Debug
beim erstellen von build-Ordner?Cmake build-Release-Typ Projekt-oder Debug-Art-Projekt, nicht beide zusammen.