<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BaNg@taobao

    Just Do It!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      20 Posts :: -1 Stories :: 202 Comments :: 0 Trackbacks
    為了搞清linux下SWT與GTK+的映射機制,翻出老筆記本裝了個Ubuntu,配置GTK+開發環境還是比較簡單的。

    1. 安裝必須要的東西
      1. 安裝JDK,使用命令:sudo apt-get install sun-java6-sdk
      2. 安裝eclipse+CDT 5.0,我覺得CDT從5開始漸成氣候了,作為一個eclipse開發者,我覺得他比kdevelop好用:),遺憾的是在win下不支持msvc,只能通過mingw或cygwin
      3. 安裝gnome和gtk+開發庫,使用命令:sudo apt-get install libgtk2.0-dev libgnome2-dev ,安裝之后,所有相關的頭文件和靜態/動態庫文件已經準備好了,不得不說apt-get真NB。
    2. 測試一下
      1. 頭文件使用命令 pkg-config --cflags gtk+-2.0,正常情況下會出現一下結果:
        -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/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1
      2. 庫文件使用命令 pkg-config --libs gtk+-2.0,正常情況下會出現一下結果:
        -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
    3. 啟動Eclipse,新建一個c project,然后右鍵單擊 properties->c/c++ build->Settings,在Tool Setting中將給GCC設置頭文件目錄以及鏈接庫(還有一種做法是自定義make file,里面調用pkg-config,因為沒有顯式設置,cdt無法做靜態分析,不能利用它的強大功能,比如索引,重構等)。
      1. 設置頭文件,點擊GCC C Compiler->Directories,然后使用命令 pkg-config --cflags gtk+-2.0 | sed 's/ /\n/g' > include.txt,然后使用命令 sed 's/-I//g' include.txt,依次將出現的每一行add到inclue path里面去。
      2. 設置庫,點擊GCC C Linker->Libraries,然后如頭文件操作一樣使用命令pkg-config --libs gtk+-2.0 | sed 's/ /\n/g' > lib.txt,然后使用命令 sed 's/-l//g' lib.txt,依次將出現的每一行添加到libraries里。
    4. 編寫一個包含GTK+測試代碼的C文件,添加到項目里面,內容如下:
      #include <gtk/gtk.h>
      static void destroy(GtkWidget*, gpointer);
      static gboolean delete_event(GtkWidget*, GdkEvent*, gpointer);
      int main(int argc, char *argv[]) {
          GtkWidget 
      *window, *label;
          gtk_init(
      &argc, &argv);
          window 
      = gtk_window_new(GTK_WINDOW_TOPLEVEL);
          gtk_window_set_title(GTK_WINDOW (window), 
      "Hello World!");
          gtk_container_set_border_width(GTK_CONTAINER (window), 
      10);
          gtk_widget_set_size_request(window, 
      200100);
          
      /* Connect the main window to the destroy and delete-event signals. */
          g_signal_connect(G_OBJECT(window), 
      "destroy", G_CALLBACK(destroy), NULL);
          g_signal_connect(G_OBJECT(window), 
      "delete_event",
                  G_CALLBACK(delete_event), NULL);
          
      /* Create a new GtkLabel widget that is selectable. */
          label 
      = gtk_label_new("Hello World");
          gtk_label_set_selectable(GTK_LABEL (label), TRUE);
          
      /* Add the label as a child widget of the window. */
          gtk_container_add(GTK_CONTAINER (window), label);
          gtk_widget_show_all(window);
          gtk_main();
          
      return 0;
      }
      /* Stop the GTK+ main loop function when the window is destroyed. */
      static void destroy(GtkWidget *window, gpointer data) {
          gtk_main_quit();
      }
      /* Return FALSE to destroy the widget. By returning TRUE, you can cancel
       * a delete-event. This can be used to confirm quitting the application. 
      */
      static gboolean delete_event(GtkWidget *window, GdkEvent *event, gpointer data) {
          
      return FALSE;
      }

      (以上代碼來自圖書 Foundation of GTK+ development)
      然后運行,正常會顯式如下:
    Ubuntu真是個好東西,耗的資源少,圖形系統穩定,對開發人員及其友好,真的很強大。

    posted on 2008-11-17 00:28 Always BaNg. 閱讀(6146) 評論(3)  編輯  收藏 所屬分類: EclipseC++源代碼分析

    Feedback

    # re: Ubuntu下GTK+開發環境設置 2009-12-02 15:14 wqlxp
    感謝博主,解決大問題了。  回復  更多評論
      

    # re: Ubuntu下GTK+開發環境設置 2012-06-21 14:04 slitony
    謝謝。
      回復  更多評論
      

    # re: Ubuntu下GTK+開發環境設置 2013-11-20 20:13 lee!ce
    難道 archlinux xfce 就不穩定嗎?

    我用了好幾年了,也沒見出什么錯  回復  更多評論
      

    主站蜘蛛池模板: 全部免费a级毛片| 国产精品久久久久影院免费| 亚洲国产精品无码专区| 一级做a爱过程免费视| 亚洲视频一区二区| 国产裸体美女永久免费无遮挡| 亚洲免费在线观看| 中文字幕免费视频精品一| 久久亚洲高清观看| 免费A级毛片无码视频| 久久久久久亚洲Av无码精品专口| 久久久久国产免费| 亚洲av永久综合在线观看尤物| 成全视频免费高清| 美女啪啪网站又黄又免费| 久久青青草原亚洲av无码| a级片在线免费看| 亚洲欧洲日产专区| 免费高清资源黄网站在线观看| 国产精品亚洲一区二区三区 | 妻子5免费完整高清电视| 亚洲日韩看片无码电影| 亚洲成人一区二区| 暖暖在线视频免费视频| 国产成+人+综合+亚洲专| 免费a级黄色毛片| 免费网站看av片| 在线aⅴ亚洲中文字幕| 亚洲午夜精品第一区二区8050| 国产免费无码一区二区| 亚洲一卡2卡3卡4卡5卡6卡 | 污视频网站在线观看免费| 亚洲大尺度无码专区尤物| 无码国产精品一区二区免费式影视| 亚洲欧美成人综合久久久| 亚洲人精品午夜射精日韩| 无码人妻一区二区三区免费| 国产精品综合专区中文字幕免费播放 | 国产在线98福利播放视频免费| 两性色午夜免费视频| 亚洲妓女综合网99|