Проблема с использованием CMake: модуль GTK - PullRequest
5 голосов
/ 29 сентября 2010

Я пытаюсь скомпилировать zzogl с помощью CMake и продолжаю сталкиваться с проблемами.В моем первом выпуске говорилось, что мне нужен pkgconfig, поэтому я установил его, для чего мне также пришлось установить MacPorts.Затем он сказал, что мне нужен модуль GTK + -2.0, так что я получил это тоже.После того, как установка заняла целую вечность, я все еще получаю эту ошибку:

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!

Я не совсем знаком с тем, что я делаю, и вполне возможно, что я все делаю неправильно.Кто-нибудь есть побудить в моей проблеме?Я использую макинтош со снежным барсом.

Ответы [ 2 ]

3 голосов
/ 05 ноября 2010

Хорошо, я заглянул в модуль FindGTK2.cmake и думаю, что вижу проблему: он не использует pkg-config, но по-своему находит заголовки и библиотеки. Функция _GTK2_FIND_INCLUDE_DIR не имеет /opt/local/include/ в своем списке каталогов, где MacPorts, вероятно, собирается установить заголовки. Точно так же _GTK2_FIND_LIBRARY не перечисляет /opt/local/lib.

Это известная ошибка , которая, очевидно, была исправлена ​​в CMake 2.8.3-rc1 . У меня есть сомнения, потому что они не обновили путь к библиотеке. Посмотрим.

Я посмотрел документацию для find_path и find_library. Похоже, что пользователь может дать подсказки о пути поиска, указав -D опции для cmake. Попробуйте что-то вроде:

cmake ../zzogl -DCMAKE_INCLUDE_PATH=/opt/local/include -DCMAKE_LIBRARY_PATH=/opt/local/lib
3 голосов
/ 29 сентября 2010

Вы установили gtk командой, аналогичной sudo port install gtk2? Если да, то обычно gtk должен быть найден cmake. Вы можете проверить, правильно ли gtk найден pkg-config вручную следующим образом:

pkg-config --cflags gtk+-2.0

который должен напечатать что-то вроде

-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

, но с другими путями, вышеприведенное относится к системе Linux.

Если вызов pkg-config действительно успешен, значит, что-то не так с вашей конфигурацией CMake. Затем вы можете попытаться установить версию cmake для MacPorts следующим образом: sudo port install cmake и использовать эту.

...