Linux上搭建C/C++IDE開發環境

來源:互聯網
上載者:User

  文/張善友

  Redhat linux上面沒有提供Anjuta軟體包,上面提供了一個Glade應用程式介面設計工具。Linux上面使用Anjuta和Glade以及Glademm軟體包可以搭建一個linux下面進行C/C++軟體開發的IDE環境,可以進行GTK+/Gnome的應用程式開發。

  以前開發 Linux 程式時寫出好的圖形化使用者介面比較難。在 GIMP 工具包 (GTK)誕生之後,這件事就變得比較容易了。當Damon Chaplin 寫出 GLADE 這個用於在 GTK 環境下產生圖形化使用者介面的工具後,就更容易了。但是GLADE 仍然不能算是一個“整合式開發環境”(如 Visual Basic 等等.),因為程式員不能在 GLADE 的環境下手動修改 GLADE 產生的代碼。現在,這一切都已成為過去: Anjuta誕生了!

  Anjuta 利用 GLADE 產生優美使用者介面的能力,加之以自己強大的來源程式編輯能力,正成為一個極好的應用程式快速開發的Integration Environment(IDE)。以前,人們使用 GLADE 做介面,用 emacs 或 vi 等等編輯程式,再用某種終端模擬器編輯開發項目。使用 Anjuta,所有這些繁雜零散的任務都可以在一個統一的、整合的、自然而然的環境下完成。

  一、軟體準備:

  下載libzvt-2.0.1-0.ximian.6.6.i386.rpm

  tux.cprm.net/pub/ximian/xd2/redhat-9-i386/libzvt-2.0.1-0.ximian.6.6.i386.rpm

  下載anjuta-1.1.97-1.rh90.i386.rpm

  rpm.pbone.net/index.php3/stat/4/idpl/772608/com/anjuta-1.1.97-1.rh90.i386.rpm.html

  下載anjuta-1.0.2-1.i386.rpm

  heanet.dl.sourceforge.net/sourceforge/anjuta/anjuta-1.0.2-1.i386.rpm

  下載gtkmm2-2.2.3-fr1.i386.rpm

  ftp.freshrpms.net/pub/freshrpms/redhat/9/gtkmm2/gtkmm2-2.2.3-fr1.i386.rpm

  下載gtkmm2-devel-2.2.3-fr1.i386.rpm

  ftp.freshrpms.net/pub/freshrpms/redhat/9/gtkmm2/gtkmm2-devel-2.2.3-fr1.i386.rpm

  下載libsigc++-1.2.5-fr1.i386.rpm

  ftp.freshrpms.net/pub/freshrpms/redhat/9/libsigc++/libsigc++-1.2.5-fr1.i386.rpm

  下載glademm-1.1.3d-SNAP.i586.rpm

  loban.caltech.edu/gchch/glademm-1.1.3d-SNAP.i586.rpm

  下載libsigc++-devel-1.2.5-fr1.i386.rpm

  ftp.freshrpms.net/pub/freshrpms/redhat/9/libsigc++/libsigc++-devel-1.2.5-fr1.i386.rpm

  二、安裝軟體包

  安裝redhat linux 9選擇安裝上軟體開發項,這樣就安裝上了Glade,然後以root使用者登陸,安裝如下軟體包。

  rpm -ivh libzvt-2.0.1-0.ximian.6.6.i386.rpm //anjuta的依賴軟體包
  rpm -ivh ibsigc++-1.2.5-fr1.i386.rpm
   rpm -ivh gtkmm2-devel-2.2.3-fr1.i386.rpm
  rpm -ivh ibsigc++-devel-1.2.5-fr1.i386.rpm
  rpm -ivh gtkmm2-2.2.3-fr1.i386.rpm
  rpm -ivh glademm-1.1.3d-SNAP.i586.rpm
  rpm -ivh anjuta-1.0.2-1.i386.rpm
  rpm -Uvh anjuta-1.1.97-1.rh90.i386.rpm

  注:直接安裝anjuta-1.1.97會發現無法編譯軟體,這裡要注意的幾個問題

  1、要安裝 Ximian版本的 libzvt 軟體包,就是要安裝我上面提到那個
  2、要先安裝 Anjuta 1.0.1,然後才updated via rpm -Uvh Anjuta 1.1.97

  三、進行開發第一個Anjuta1.1.97上的C/C++的程式

  讓我們先用 Anjuta 建立一個簡單的Hello World 程式.

  建立一個新的項目

  先請開啟 Anjuta。請選擇功能表項目 編程-> 更多編程工具-->Anjuta IDE。GNOME應用程式精靈 "GNOME2.0 Application Wizard" 將會出現。儘管人們只要點擊“下一個”(Next)按鈕就可以,而不必去管精靈對話方塊上有些什麼資訊,這裡還是希望您能讀一下對話方塊上的每一條資訊。現在,在您讀完精靈第一步的對話方塊上的資訊後,請按Next 按鈕。

  第二步非常關鍵。這裡您需要決定您要建立的應用程式的類型。讓我們選擇 "Gnome2.0 project" ,然後繼續走下去。第三步要確定應用程式的基本配置。請非常仔細地填入應用程式的配置資訊。在本教程中,請輸入以下資訊。

  項目名稱: HelloWorld(程式項目名)注意項目名稱中間不能有空格
  程式版本: 0.1(版本號碼)
  程式作者: (你的名字)
  程式名稱: helloworld(程式名)
  程式語言: 有C,C++和C/C++三種選擇,這裡選擇C
  程式類型: 有三種選擇可執行程式,動態連結程式庫和靜態連結庫.

  下面第四步編寫項目的描述資訊;

  第五步是項目的其他選項,GNU著作權聲明和程式的本地化支援項,如果您不想要,您可以去除他們。您最好為本應用程式項目選擇一個表徵圖,該表徵圖將會出現在GNOME 應用程式菜單中。這裡我們選取 Hello World example作為項目名,在 Group 域選取 Applications。最後點擊 Next 按鈕和 Finish 按鈕。這時本應用程式項目就建立起來了。

  因為我們只是在建立一個例子程式,我們可以輕鬆前行。如果我們是在建立一個要在現實世界使用的應用項目,那我們在填寫應用程式精靈每一步的參數時可要格外小心,因為它們對您的應用程式項目來說非常重要。

  設計使用者介面

  在與應用程式精靈對話結束之後,Anjuta 就開始建立您的應用程式項目的目錄結構,運行參數配置指令碼並建立應用項目本身。整個建立過程的進行情況顯示在 Anjuta 開發環境的下部。建立過程結束後,螢幕的左邊示出應用項目樹結構。這個樹結構中包含您的來源程式檔案,說明檔案和圖形檔案。


圖1

  現在是啟動 GLADE 並用其設計圖形化使用者介面的時候了。請到功能表項目 項目->編輯圖形介面 去運行 GLADE。您將看到三個視窗: 1) Glade 主視窗,2) 屬性視窗,and 3) 繪圖工具視窗。

  取一個簡單的 GTK 視窗就行了。請點擊 Glade 主視窗上列出的第一項 (hello_app), 然後按 Del 刪除鍵。現在到工具視窗(Palette),點擊第一個表徵圖。這時一個空白的 GtkWindow 建起來了。這將是我們的應用程式的主視窗 window1。再到屬性視窗(Properties),敲入標題“Hello World!”。現在再到工具視窗上選取一個表格(table)2行2列放到主視窗 window1 上。這樣,主視窗被切分為同等大小的4個部分。

  現在再從工具視窗中取出兩個按鈕,分別加到主視窗下面的兩個框中。再把這兩個按鈕的名字和標籤屬性設定如下:

  左按鈕:
  名字: BT_OK
  標籤: OK
  右按鈕:
  名字: BT_EXIT
  標籤: Exit

  在視窗的上半部,左邊再加上一個標籤控制項;在上半部右邊加上一個輸入框 Entry 控制項。該輸入框的名字取為 ENTRY。將上述標籤控制項的標籤屬性置為 'What's your name,sir?'。

  現在在屬性視窗的屬性檔(Signals tab)上把兩個按鈕都和 Clicked事件串連起來。使用GLADE預設的反向調用函數名。請不要忘記點擊 Add 按鈕。這種常見的錯誤會導致產生空白的 callbacks.c 檔案。在源檔案callbacks.c上,我們將會通過 Anjuta介面加入 原始碼。

  現在,主視窗看起來似乎不那麼漂亮。您可以試試改變視窗的寬度和高度,以及試試改改水平和垂直包容框的幾個屬性,看看能不能讓視窗好看些。(注意:您可到菜單View,選擇控制項樹,然後選擇控制項。) 下面是一些屬性的設定:

  *將下面的水平包容框的屬性 Homogeneous 置為Yes;
  *將屬性視窗的定位檔的按鈕的屬性 Fill 置為 Yes;
  *將主視窗 window1 的屬性 Grow 置為No.

  把這些屬性改來改去後,我的主視窗的樣子如下:


圖2

  設計好介面後,在Glade主視窗上點擊“存檔”按鈕,然後再點擊“聯編”按鈕. 這就按您新設計的介面更新了您的 應用項目的src目錄下的源檔案 interface.c。現在,讓我們選菜單 Project -> Exit,回到 Anjuta 使用者介面下。開始編程啦!

  編輯程式

  現在回到 Anjuta 環境中來,您應該可以在螢幕左邊的項目來源程式列表中看到 callbacks.c. 雙點擊開啟該程式. 這樣我們在Anjuta整合式開發環境的左邊就可以編輯該程式了。

  有時一事物如果是有色彩的話就會變得更容易理解、更有趣。Anjuta 的“文法強調色”功能 (在“Format”菜單上)就屬於這種情況. Anjuta還有很多很多有用的功能,您可以慢慢品玩。也許現在花點時間熟悉熟悉這個Integration Environment是很有好處的。

  現在回到 callbacks.c 檔案,我們看到兩個反向調用函數: on_BT_OK_clicked 和on_BT_EXIT_clicked. 讓我們在第二個函數中加入一個函數調用:gtk_main_quit()。這樣,該函數變成:

  #ifdef HAVE_CONFIG_H
  #include
  #endif
  #include
  #include "callbacks.h"
  #include "interface.h"
  #include "support.h"
  void on_BT_OK_clicked(GtkButton *button, gpointer user_data)
  {
    gtk_main_quit();
  }

  這個函數調用的目的是當使用者點擊退出按鈕時,整個應用程式會結束。與此相仿,我們在 on_BT_OK_clicked函數中加入下列函數調用:

  void on_BT_OK_clicked (GtkButton *button, gpointer user_data)
  {
    GtkWidget *entry = lookup_widget (GTK_WIDGET(button), "entry");
    GtkWidget *msgbox = gnome_app_new("Hello World", "Hello World");
    gchar *text1, *text2;
    text1 = gtk_entry_get_text (GTK_ENTRY(entry));
    text2 = strcat ("Hello, ", text1);
    gnome_app_message (GNOME_APP(msgbox), text2);
  }

  產生目標代碼,執行,以及發行。

  現在到了測試您程式的時候了;這一定很有趣。先選擇功能表項目建立->建立項目。這時Anjuta就開始編譯和連結專案裡的來源程式main.c, interface.c, support.c and callbacks.c,然後將產生的可執行檔hello放到 src 目錄。編譯器一般會用 gcc。

  如果您幸運,編譯過程沒有任何錯誤資訊的話,請選功能表項目“建立->執行程式”於是Anjuta開闢一個終端視窗,並在其上運行您的應用程式 HelloWorld! 請在輸入框上輸入您的名字,然後點擊 OK 按鈕。希望這時您的應用程式回您一個問候:Hello ... 您可再敲入一個問候詞,然後點退出按鈕 Exit,看看程式能否正常退出。如果正常退出,那真好! 您的辛勤勞動終於有了結果!

  這時您可把您的應用程式安裝到視窗系統中去:選功能表項目 建立->安裝儘管您現在也許並不想為您的應用程式建立一個tarball檔案,但也許以後您要發行軟體時就需要這樣做了。在發行應用程式前,務必要填好 TODO,ChangeLog,INSTALL 和 README 這幾個檔案。要建立一個應用程式的發行版,請點擊 建立->建立發行套件 建立過程也許會持續幾秒鐘,最終會在 /home/(username)/Projects/helloworld/ 目錄下建立一個檔案 helloworld-0.1.tar.gz。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.