2010-09-29 17 views
5

Estoy intentando compilar zzogl con CMake y sigo teniendo problemas. Mi primer problema decía que necesitaba pkgconfig, así que lo instalé, para lo cual también tuve que instalar MacPorts. Entonces dijo que necesitaba el módulo gtk + -2.0, así que lo obtuve también. Después de que tuvo siempre para instalar, sigo teniendo este error:Problema con CMake: módulo 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! 

No estoy muy familiarizado con lo que soy doin, y es totalmente posible que estoy haciendo todo mal. ¿Alguien tiene alguna incitación a mi problema? Estoy usando un mac con leopardo de nieve por cierto.

Respuesta

3

¿Instaló gtk con un comando similar a sudo port install gtk2? En caso afirmativo, normalmente cmake debería encontrar gtk. Se puede comprobar la GTK se encuentra correctamente por pkg-config manualmente así:

pkg-config --cflags gtk+-2.0 

que debe imprimir algo así como

-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 

pero con diferentes trayectorias, lo anterior es en un sistema Linux.

Si de hecho la llamada pkg-config tiene éxito, algo está mal con la configuración de CMake. A continuación, intente instalar la versión MacPorts de cmake de la siguiente manera: sudo port install cmake y use esta.

+0

Gracias por la respuesta, pero después de ejecutar pkg-config --cflags GTK + -2.0 Tengo básicamente lo que tenía pero reemplace -I/usr/lib/GTK con: -I/opt/local /include/gtk-2.0 etc. Intenté instalar cmake nuevamente con la línea de comandos, luego intenté compilar de nuevo. Terminé con el mismo error que mi intento anterior, al pie de la letra. – MBguitarburst

+0

¿Ha iniciado CMake desde el mismo terminal en el que funcionó pkg-config? Entonces estoy realmente sin ideas ... – fschmitt

+0

Originalmente estaba ejecutando una aplicación Cmake con una interfaz gráfica de usuario. Sin embargo, esta vez lo ejecuté en línea de comandos usando: cmake zzogl. Supongo que fue correcto? – MBguitarburst

3

Bien, he echado un vistazo al módulo FindGTK2.cmake y creo que veo el problema: no usa pkg-config, pero tiene su propia forma de buscar encabezados y bibliotecas. La función _GTK2_FIND_INCLUDE_DIR no tiene /opt/local/include/ en su lista de directorios, que es donde MacPorts probablemente instalará los encabezados. Del mismo modo, _GTK2_FIND_LIBRARY no muestra /opt/local/lib.

Esto es known bug, que aparentemente se corrigió en CMake 2.8.3-rc1. Tengo mis dudas, sin embargo, porque no actualizaron la ruta de la biblioteca. Ya veremos.

Miré la documentación para find_path y find_library. Parece que el usuario puede dar pistas sobre la ruta de búsqueda especificando las opciones -D al cmake. Pruebe algo como:

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

¡Genial! El -DCMAKE _ * _ PATH no funcionó para mí, pero el parche en el enlace dado sí.Acabo de copiar el FindGTK2.cmake en un directorio de CMakeModules en mi directorio de origen, hice los cambios desde el parche y agregué el set (CMAKE_MODULE_PATH "$ {CMAKE_SOURCE_DIR}/CMakeModules /") a mi principal CMakeLists.txt. – rcv