Uso CMake per un progetto disponibile in due versioni, una delle quali richiede -lglapi e l'altra no.Accodamento a CMAKE_C_FLAGS
Finora le linee che abbiamo usato sguardo come quello:
SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
ho aggiunto un'istruzione if nel mio CMakeList.txt esattamente dopo quelle linee:
if(SINGLE_MODE)
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
La variabile SINGLE_MODE è definito un po ' su. Quando uso il comando di messaggio per visualizzare il contenuto delle variabili di bandiera appare bene:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
Ma quando inizio la compilazione Sono in esecuzione in un errore di compilazione. Usando la modalità dettagliata ho capito che nella chiamata del compilatore sembra che:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm; -lglapi
I.e. in qualche modo è stato aggiunto un punto e virgola prima di aggiungere il -lglapi alla lista.
Qualcuno ha riscontrato un problema simile e conosce un modo per risolvere questo problema? Ho cercato su Google un po 'di tempo e ho studiato il manuale di CMake, ma non sono riuscito a vedere cosa ho fatto di sbagliato qui.
Grazie, Tobias
Hai provato 'SET (CMAKE_CXX_FLAGS" $ {CMAKE_CXX_FLAGS} -lglapi ")'? – jpo38
@ jpo38 Dovresti dare una risposta e ottenere la tua meritata reputazione :) – Antonio
@ jpo38, grazie. Questo ha fatto il trucco. Avrei dovuto pensarci io, ma dopo aver guardato qualcosa per troppo tempo, diventerai cieco per quello. – TobiSF