Używam CMake dla projektu, który występuje w dwóch wersjach, z których jedna wymaga -lglapi, a druga nie.Dołączanie do CMAKE_C_FLAGS
Dotychczas linie użyliśmy wyglądać tak:
SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
dodałem if moim CMakeList.txt dokładnie po tych liniach:
if(SINGLE_MODE)
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
Zmienna SINGLE_MODE definiuje trochę w górę. Kiedy użyć polecenia komunikatów do wyświetlania zawartości zmiennych flag wygląda w porządku:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
Ale kiedy zaczynam kompilacji używam w błąd kompilacji. Korzystając z trybu szczegółowego, zdałem sobie sprawę, że w wywołaniu kompilatora wygląda to następująco:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm; -lglapi
tj. w jakiś sposób dodano średnik przed dodaniem -lglapi do listy.
Czy ktoś napotkał podobny problem i zna sposób rozwiązania tego problemu? Mam google przez dłuższy czas i przestudiowałem podręcznik CMake, ale nie mogłem zobaczyć, co zrobiłem źle tutaj.
Dzięki, Tobias
Czy próbowałeś 'SET (CMAKE_CXX_FLAGS" $ {CMAKE_CXX_FLAGS} -lglapi ")'? – jpo38
@ jpo38 Powinieneś odpowiedzieć i uzyskać zasłużoną reputację :) – Antonio
@ jpo38, dziękuję. To wystarczyło. Powinienem był o tym pomyśleć, ale po dłuższym spojrzeniu na coś, możesz na to zasłonić. – TobiSF