2010-09-29 2 views
5

Ich versuche, Zzog mit CMake zu kompilieren und ich laufe weiter in Probleme. Meine erste Ausgabe besagt, dass ich pkgconfig benötige, also habe ich das installiert, wofür ich auch MacPorts installieren musste. Dann hieß es, ich brauche gtk + -2.0 Modul, also habe ich das auch. Danach dauerte ewig zu installieren, erhalte ich immer noch diese Fehlermeldung:Problem mit CMake: GTK-Modul

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! 

ich nicht wirklich vertraut bin, was ich bin doin, und es ist durchaus möglich, ich alles falsch mache. Hat jemand mein Problem angesprochen? Ich benutze einen Mac mit Schneeleopard BTW.

Antwort

3

Haben Sie gtk mit einem ähnlichen Befehl wie sudo port install gtk2 installiert? Wenn ja, dann sollte normalerweise gtk von cmake gefunden werden. Sie können testen, ob gtk richtig durch pkg-config wie dies manuell zu finden ist:

pkg-config --cflags gtk+-2.0 

, die so etwas wie

-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 

aber mit unterschiedlichen Pfaden gedruckt werden soll, die oben auf einem Linux-System ist.

Wenn der Aufruf von pkg-config erfolgreich ist, stimmt etwas mit der CMake-Konfiguration nicht. Sie könnten dann versuchen, die MacPorts-Version von cmake wie folgt zu installieren: sudo port install cmake und diese verwenden.

+0

Vielen Dank für die Antwort, aber nach dem Ausführen pkg-config --cflags gtk + -2.0 Ich habe im Grunde, was Sie hatte aber ersetzen -I/usr/lib/gtk mit: -I/opt/local /include/gtk-2.0 usw. Ich habe dann versucht, Cmake erneut mit der Befehlszeile zu installieren, und habe dann versucht, erneut zu kompilieren. Am Ende habe ich den gleichen Fehler wie bei meinem vorherigen Versuch erhalten. – MBguitarburst

+0

Haben Sie CMake von demselben Terminal gestartet, in dem pkg-config gearbeitet hat? Dann habe ich wirklich keine Ideen mehr ... – fschmitt

+0

Ursprünglich hatte ich eine Cmake-Anwendung mit einer GUI. Dieses Mal habe ich es jedoch in der Befehlszeile ausgeführt: cmake zzogl. Ich nehme an, das war richtig? – MBguitarburst

3

Okay, ich habe einen Blick in das Modul FindGTK2.cmake geworfen und ich denke, ich sehe das Problem: Es verwendet nicht pkg-config, aber seine eigene Art der Suche nach Headern und Bibliotheken. Die _GTK2_FIND_INCLUDE_DIR Funktion hat /opt/local/include/ in seiner Liste von Verzeichnissen nicht, wo MacPorts wahrscheinlich die Header installieren wird. In ähnlicher Weise listet _GTK2_FIND_LIBRARY nicht /opt/local/lib auf.

Dies ist eine known bug, die anscheinend in CMake 2.8.3-rc1 behoben wurde. Ich habe jedoch meine Zweifel, weil sie den Bibliothekspfad nicht aktualisiert haben. Wir werden sehen.

Ich schaute auf die Dokumentation für find_path und find_library. Es scheint, dass der Benutzer Hinweise zum Suchpfad geben kann, indem er die Optionen -Dcmake angibt. Versuchen Sie so etwas wie:

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

Großartig! Der -DCMAKE _ * _ PATH funktionierte nicht für mich, aber der Patch auf der angegebenen Verbindung tat es.Ich habe einfach FindGTK2.cmake in ein CMakeModules-Verzeichnis in meinem Quellverzeichnis kopiert, die Änderungen vom Patch gemacht und Set (CMAKE_MODULE_PATH "$ {CMAKE_SOURCE_DIR}/CMakeModules /") zu meiner CMakeLists.txt-Hauptdatei hinzugefügt. – rcv