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. 閱讀(6158) 評論(3)  編輯  收藏 所屬分類: Eclipse 、C++ 、源代碼分析

          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 就不穩定嗎?

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

          主站蜘蛛池模板: 沈阳市| 科尔| 磴口县| 邓州市| 洛宁县| 兰西县| 永德县| 襄汾县| 公主岭市| 榆林市| 始兴县| 三门县| 重庆市| 建平县| 北海市| 玉林市| 鄄城县| 安宁市| 左贡县| 台江县| 司法| 富平县| 巫山县| 涟水县| 寻甸| 应城市| 镇江市| 盐池县| 东莞市| 营口市| 西充县| 莲花县| 和政县| 会同县| 循化| 皋兰县| 新田县| 衡东县| 曲水县| 平山县| 新丰县|