2012-11-24 51 views
1

我特林編譯gtk+-3.2.0,但我從./configure的錯誤消息:編譯後的GTK

checking for GLIB - version >= 2.29.14... 
*** 'pkg-config --modversion glib-2.0' returned 2.32.4, but GLIB (2.34.0) 
*** was found! If pkg-config was correct, then it is best 
*** to remove the old version of GLib. You may also be able to fix the error 
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing 
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is 
*** required on your system. 
*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH 
*** to point to the correct configuration files 
no 
configure: error: 
*** GLIB 2.29.14 or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/. 

我真的有GLIB 2.34.0(我從源編譯過),但我不t知道如何做gtk知道圖書館。我已將PKG_CONFIG_PATH更改爲指向新的glib安裝的路徑,並且在ldconfig之後,但沒有任何區別。通過修改/etc/ld.so.conf我真的不知道該怎麼做。任何幫助非常感謝。謝謝

+0

好吧,所以我認爲你必須刪除老版本的GLib? – MiJyn

+0

但它不會破壞另一個源代碼? – Jack

+0

你是什麼意思? – MiJyn

回答

1

PKG_CONFIG_PATH應該包含您要使用GLib版本的.pc文件所在的目錄的路徑。

否則,使用您的軟件包管理器來檢測哪個軟件包安裝了不想使用的.pc文件。並刪除該軟件包。例如,在基於rpm的發行版上,運行:

strace -eopen pkg-config --modversion glib-2.0 2>&1 | grep "\.pc" 

它將返回位於由pkg-config檢測到的.pc文件的位置。

open("/usr/lib64/pkgconfig/glib-2.0.pc", O_RDONLY) = 3 

然後檢測到包這個文件屬於:

rpm -qf /usr/lib64/pkgconfig/glib-2.0.pc 

這裏是我的Mageia 2系統上的結果:

lib64glib2.0-devel-2.32.4-1.1.mga2 

刪除這個軟件包將刪除在獲取.PC方式。但是,在刪除軟件包的情況下,您應該更喜歡PKG_CONFIG_PATH方法,並嘗試刪除您仍然想使用的其他依賴項。

+0

非常感謝。我昨天修好了,但我忘了在這裏注意到這一點。另外,'pkg-config --modversion gtk + -3.0'版本應該返回什麼版本?我得到3.2.1和gtk演示工作正常,但是當我嘗試編譯一些程序時,我得到 – Jack

+0

'/usr/lib/libgtk-3.so:未定義的引用'gdk_broadway_window_get_type' /usr/lib/libgtk -3.so:未定義參考'gdk_x11_device_manager_xi_get_type ' /usr/lib/libgtk-3.so:未定義參考'gdk_broadway_get_last_seen_time' /usr/lib/libgtk-3.so:未定義參考'gdk_extension_mode_get_type」 /USR /lib/libgtk-3.so:對'gdk_x11_device_xi_get_type''的未定義引用 – Jack

+0

修復了安裝gtk 3.0.0的問題。非常感謝。還有一個問題:一些小部件繪製不好;我得到的錯誤,如'主題分析錯誤:gtk-widgets.css:817:65:無法識別圖像文件格式如何解決它? – Jack