2010-09-29 68 views
5

我試圖使用CMake編譯zzogl,並且我一直遇到問題。我的第一個問題說明我需要pkgconfig,所以我安裝了它,爲此我還必須安裝MacPorts。然後它說我需要gtk + -2.0模塊,所以我也得到了。之後沒完沒了安裝,我仍然得到這個錯誤:使用CMake的問題: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! 

我不是很熟悉的東西我是幹什麼的,也是完全有可能的,我做這一切是錯誤的。任何人有任何煽動我的問題?我正在使用雪豹btw的Mac。

回答

3

你是否用類似於sudo port install gtk2的命令安裝gtk?如果是,那麼通常應該由cmake找到gtk。您可以測試,如果GTK是正確的pkg配置手動發現像這樣:

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並使用這個。

+0

感謝您的答覆,但運行pkg配置後--cflags GTK + -2.0我基本上你有什麼,但更換-I/usr/lib目錄/ GTK有:-I /選擇/本地/include/gtk-2.0等。然後我嘗試再次用命令行安裝cmake,然後再次嘗試編譯。我最終以與之前的嘗試相同的錯誤逐字逐句結束。 – MBguitarburst 2010-09-29 18:51:00

+0

您是否從pkg-config工作的相同終端啓動CMake?然後我真的沒有想法... – fschmitt 2010-09-29 19:07:33

+0

最初我正在用gui運行一個Cmake應用程序。然而這次我使用cmake zzogl在命令行中運行它。我認爲這是正確的? – MBguitarburst 2010-09-29 19:25:33

3

好的,我看了一下FindGTK2.cmake模塊,我想我看到了這個問題:它不使用pkg-config,而是用它自己的方式查找頭文件和庫。 _GTK2_FIND_INCLUDE_DIR函數的目錄列表中沒有/opt/local/include/,這是MacPorts可能要安裝標題的位置。同樣,_GTK2_FIND_LIBRARY沒有列出/opt/local/lib

這是一個known bug,它明顯固定在CMake 2.8.3-rc1。但我有我的疑慮,因爲他們沒有更新圖書館的路徑。我們拭目以待。

我查看了find_pathfind_library的文檔。看起來用戶可以通過指定-D選項給cmake提供關於搜索路徑的提示。嘗試是這樣的:

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

太棒了! -DCMAKE _ * _ PATH對我來說不起作用,但是給定鏈接上的補丁沒有。我只是將FindGTK2.cmake複製到我的源代碼目錄中的CMakeModules目錄中,並從修補程序中進行更改,並將集合(CMAKE_MODULE_PATH「$ {CMAKE_SOURCE_DIR}/CMakeModules /」)添加到我的主CMakeLists.txt中。 – rcv 2010-11-07 01:24:01