Ich verwende CMake für ein Projekt, das in zwei Versionen kommt, von denen die eine -lglapi und die andere nicht benötigt.Anhängen an CMAKE_C_FLAGS
Bisher sind die Linien benutzten wir sehen wie folgt aus:
SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
ich eine zusätzliche if-Anweisung in meiner CMakeList.txt genau nach diesen Zeilen:
if(SINGLE_MODE)
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
Die SINGLE_MODE Variable ist ein wenig definiert oben. Als ich die Nachricht Befehl den Inhalt der Flag-Variablen angezeigt werden es in Ordnung aussieht:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
Aber wenn ich kompilieren beginne ich in einen Compiler-Fehler leite. Mit dem ausführlichen Modus erkannte ich, dass es im Compiler-Aufruf so aussieht:
I.e. Irgendwie wurde ein Semikolon hinzugefügt, bevor das -lglapi zur Liste hinzugefügt wurde.
Hat jemand hier auf ein ähnliches Problem gestoßen und weiß, wie man dieses Problem beheben kann? Ich habe eine ganze Weile gegoogelt und das CMake-Handbuch studiert, konnte aber nicht sehen, was ich hier falsch gemacht habe.
Danke, Tobias
Haben Sie 'SET (CMAKE_CXX_FLAGS" $ {CMAKE_CXX_FLAGS} -lglapi ")'? – jpo38
@ jpo38 Sie sollten eine Antwort geben und Ihren verdienten Ruf bekommen :) – Antonio
@ jpo38, danke. Das hat den Trick gemacht. Daran hätte ich selbst denken müssen, aber nachdem ich etwas zu lange angeschaut habe, bist du dafür blind geworden. – TobiSF