2010-09-29 13 views
5

Sto tentando di compilare zzogl utilizzando CMake e continuo a riscontrare problemi. Il mio primo numero ha dichiarato che avevo bisogno di pkgconfig, quindi l'ho installato, per il quale dovevo anche installare MacPorts. Poi ha detto che avevo bisogno del modulo gtk + -2.0, quindi ho capito anche io. Dopo di che ha preso per sempre per l'installazione, ho ancora ottenere questo errore:Problema utilizzando CMake: modulo gtk

checking for module 'gtk+-2.0' 
package 'gtk+-2.0' not found 
CMake Error at /Applications/CMake 2.8-2.app/Contents/share/cmake-2.8/Modules/FindPkgConfig.cmake:266 (message): 
A required package was not found 
Call Stack (most recent call first): 
/Applications/CMake 2.8-2.app/Contents/share/cmake-2.8/Modules/FindPkgConfig.cmake:320 (_pkg_check_modules_internal) 
CMakeLists.txt:106 (pkg_check_modules) 


CMake Error at cmake/funcs.cmake:32 (message): 
gtk not found, aborting... 
Call Stack (most recent call first): 
cmake/funcs.cmake:23 (reportFound) 
CMakeLists.txt:107 (checkFor) 


Configuring incomplete, errors occurred! 

io non sono davvero familiarità con ciò che io sono doin, ed è del tutto possibile che sto facendo tutto sbagliato. Qualcuno ha qualche istigazione nel mio problema? Sto usando un mac con leopardo delle nevi btw.

risposta

3

Hai installato gtk con un comando simile a sudo port install gtk2? Se sì, allora normalmente gtk dovrebbe essere trovato da cmake. È possibile verificare se gtk sia correttamente trovato da pkg-config manualmente in questo modo:

pkg-config --cflags gtk+-2.0 

che dovrebbe stampare qualcosa come

-pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 

ma con percorsi diversi, quanto sopra è su un sistema Linux.

Se effettivamente la chiamata pkg-config ha esito positivo, c'è qualcosa che non va nella configurazione di CMake. Potresti quindi provare a installare la versione MacPorts di cmake in questo modo: sudo port install cmake e utilizzare questa.

+0

Grazie per la risposta, ma dopo l'esecuzione pkg-config --cflags gtk + -2.0 ho ottenuto praticamente quello che aveva, ma sostituire -I/usr/lib/gtk con: -I/opt/local /include/gtk-2.0 ecc. Ho quindi provato a installare cmake di nuovo con la riga di comando, quindi ho provato a compilarlo di nuovo. Ho finito con lo stesso errore del mio precedente tentativo, testualmente. – MBguitarburst

+0

Hai avviato CMake dallo stesso terminale in cui ha funzionato pkg-config? Quindi sono davvero fuori dalle idee ... – fschmitt

+0

Originariamente stavo eseguendo un'applicazione Cmake con una GUI. Comunque questa volta l'ho eseguito in riga di comando usando: cmake zzogl. Suppongo che fosse corretto? – MBguitarburst

3

Ok, ho dato un'occhiata al modulo FindGTK2.cmake e penso di vedere il problema: non usa pkg-config, ma fa il suo modo di trovare intestazioni e librerie. La funzione _GTK2_FIND_INCLUDE_DIR non ha /opt/local/include/ nel suo elenco di directory, che è dove MacPorts sta probabilmente installando le intestazioni. Allo stesso modo, _GTK2_FIND_LIBRARY non elenca /opt/local/lib.

Questo è un known bug, che è stato apparentemente risolto in CMake 2.8.3-rc1. Ho i miei dubbi, però, perché non hanno aggiornato il percorso della libreria. Vedremo.

Ho esaminato la documentazione per find_path e find_library. Sembra che l'utente possa fornire suggerimenti sul percorso di ricerca specificando le opzioni -D su cmake. Provare qualcosa di simile:

cmake ../zzogl -DCMAKE_INCLUDE_PATH=/opt/local/include -DCMAKE_LIBRARY_PATH=/opt/local/lib 
+0

Grande! Il -DCMAKE _ * _ PATH non ha funzionato per me, ma la patch al link indicato ha funzionato.Ho appena copiato FindGTK2.cmake in una directory CMakeModules nella mia directory di origine, ho apportato le modifiche dalla patch e ho aggiunto il set (CMAKE_MODULE_PATH "$ {CMAKE_SOURCE_DIR}/CMakeModules /") al mio CMakeLists.txt principale. – rcv