程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> GTK+ FAQ

GTK+ FAQ

編輯:C語言基礎知識

  2. 如何尋找, 設定, 安裝, 及錯誤處理?
   2.1 要執行GTK+需要什麽?
   要編譯GTK+, 您只需要C編譯器(gcc)及X Window System及相關函數庫即可.
  
  
   2.2 要到那裡取得GTK+?
   正式的位置:
  
   FTP://ftp.gtk.org/pub/gtk
  
   當然了, 任何ftp.gtk.org映射站都會有最後版本.
  
   2.3 我要如何編譯設定GTK+?
   一般來說, 您只需要打入以下命令:
  
   ./configure
   make
  
   在gtk+-version/目錄下.
  
   2.4 當編譯GTK+時, 我挨了這麽一記: make: file `Makefile' line 456: Syntax error
   請確定您正在使用GNU make (用make -v來確認). 有很多希奇但不錯的版本的make, 但不是全部都能處理好自動產生的Makefiles.
  
  
  
   2.5 我已經編譯好並安裝好GTK+, 但我不能令任何程式來鏈結它!
   這個問題遇得很多, 當GTK+函數庫找不到或是錯誤的版本. 一般, 編譯器會抱怨'unresolved symbol'. 您得要檢查兩件事:
  
   確認函數庫找得到. 您會需要去編輯 /etc/ld.so.conf把GTK函數庫目錄包含進去, 看起來像這樣:
   /usr/X11R6/lib
   /usr/local/lib
  
   然後要在root下執行 /sbin/ldconfig. 您可以用
   gtk-config --libs
  
   來找出GTK正在用的目錄. 假如您的系統並不使用ld.so來找函數庫(像Solaris就是), 那麽您需要使用LD_LIBRARY_PATH環境變數來設定參數 (或編譯該路徑到您的程式, 這裡我就不講了. 若您用Bourne式的shell您可以用(假設您的GTK是在/usr/local/lib):
   eXPort LD_LIBRARY_PATH=/usr/local/lib
  
   而在csh, 您可以:
   setenv LD_LIBRARY_PATH /usr/local/lib
  
   確定您的linker可以找到正確的函數庫. 假如您的Linux版本已經安裝GTK+(例如, RedHat 5.0), 那麽可能是用舊一點的版本. 現在, 輸入以下命令:
   rpm -e gtk gtk-devel
  
   您可能會想要移除這些gtk相關程式: (rpm會告訴您那些是相關的). 假如您沒有RedHat Linux系統, 查看看可能在
   /usr/lib
  
   或
   /usr/local/lib
  
   包含許多函數庫像libgtk, libgdk, libglib, or libgck. 假如有, 將它們移除 (and any gtk include files, sUCh as /usr/include/gtk and /usr/include/gdk) 並重新安裝gtk+.
  
   2.6 當編譯GTK+程式時, 我中了這麽一記, 找不到"glibconfig.h".
   標頭檔"glibconfig.h"被從$exec_prefix/lib/glib/include/移除掉了. $exec_prefix是當您configure時指定給--exec-prefix的設定. 它內定為$prefix, (specified with --prefix), 然後會變成/usr/local/.
  
   這是因為"glibconfig.h"包含了架構獨立的設定資訊, 而其它的檔案都放在$prefix/include, 這樣可以使不同架構平台共用.
  
   GTK+包含了一個shell script, gtk-config, 可以用來找出正確的include路徑. GTK+入門導引有一些范例使用gtk-config. 更復雜的設定可以參考在GTK+內的docs/gtk-config.txt.
  
   假如您正試著要編譯一個老程式, 您可以用這樣的設定:
  
  
   CPPFLAGS="-I/usr/local/include/glib/include" ./configure
  
   Bourne-compatible shells像bash, 或csh variants可用:
  
  
  
   setenv CPPFLAGS "-I/usr/local/include/glib/include"
   ./configure
  
   (替換/usr/local為適當的$exec_prefix)
  
  
   2.7 安裝GIMP時, configure說它找不到GTK.
   有好幾個可能的理由:
  
   您可能有個老一點的版本的GTK安裝在那裡. 例如RedHat 5.0 安裝了老一點版本的GTK, GIMP沒辦法用. 您應該把舊的版本移除掉, 但小心這樣會把 control-panel的軟體搞亂.
  
   gtk-config 不在您的路徑中, 或有個比較老的版本在您系統中. 輸入:
   gtk-config --version
  
   來檢查. 假如它返回一個跟您所想得不一樣的版本, 那麽您有個舊版GTK在系統上.
  
   ./configure script找不到GTK函數庫. 因為./configure編譯很多種測試程式, 它需要能夠找出GTK函數庫. 看看上面來解決這個問題.
   假如都不是以上所述, 那麽找看看config.log, 這是由./configure所產生的. 在最下面是錯誤發生的地方.
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved