2012-06-14 5 views
7

Ich versuche Debug/Release abhängig Compiler-Flags enthalten, wie zum Beispiel:Cmake ignorieren CMAKE_BUILD_TYPE = Debug

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 Build-Ordner mit einem Befehl zu erstellen, wie:

cmake -DCMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques 

aber es scheint mit CMAKE Version 2.8.7, CMAKE_BUILD_TYPE wird ignoriert. Es scheint perfekt mit Version 2.8.4 (auf einer anderen Maschine) zu funktionieren, also wurde diese Methode veraltet oder gibt es hier ein anderes Problem?

Zenna

+0

Es ist nicht veraltet. Wie schätzen Sie ein, dass es ignoriert wird? – Fraser

+0

Keine Debug-Symbole sind in der ausführbaren Datei, und wenn ich schlechte Befehle z. set (CMAKE_CXX_FLAGS_DEBUG "$ {CMAKE_CXX_FLAGS_DEBUG} -Wall viele schlechte Befehle"), gibt es keinen Effekt. – zenna

+2

Muss gelesen werden: http://www.cmake.org/pipermail/cmake/2008-September/023808.html – bitek

Antwort

4

Das Problem war, dass es einen Raum zwischen dem -D und die Variable sein muss. Das heißt, es sein sollte:

cmake -D CMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques 
+1

Und vergessen Sie nicht, den Variablentyp zu definieren. Von CMake docs ist es: '-D : = ' –

+5

Ich habe _never_ musste ein Leerzeichen nach -D verwenden. Sind Sie sicher, dass Ihr 'CMAKE_CXX_FLAGS_DEBUG' '-g' enthält? Wenn Sie dasselbe Build-Verzeichnis erneut verwendet haben, wurden möglicherweise ungültige Werte im Variablen-Cache erneut verwendet. – Mark

+0

Sind die Build-Typen 'RELEASE' und' Release' gleichwertig? – nn0p

1

Warum sind Sie nicht -DCMAKE_BUILD_TYPE=Debug verwenden, wenn Ordner erstellen bauen? Cmake build Freigabetyp Projekt oder Debugtyp Projekt, nicht beide zusammen.

2

Ich denke, sie haben eine Tippfehler in CMAKE_BUILD_TYPE in der vorherigen Version gemacht. Wir hatten dieses Problem und hier eine Zeile, die funktioniert.

cmake -D CMAKE_BUILD_TYPE:STRING=Debug ../src 

können Sie überprüfen, ob alle Dinge ging mit fein:

cmake -L ../src 

Mit diesem Befehl können Sie die richtige Art und Weise geben die Variable CMAKE_BUILD_TYPE zu nennen.

Viel Glück.

5

Sie haben einen Tippfehler. Ihr Code lautet CMAKE_CSS_FLAGS_RELEASE. Hinweis CSS, sollte es CXX sein.

Verwandte Themen