国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

Linux上搭建C/C++IDE開(kāi)發(fā)環(huán)境

2024-07-26 00:28:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  文/張善友

  Redhat linux上面沒(méi)有提供Anjuta軟件包,上面提供了一個(gè)Glade應(yīng)用程序界面設(shè)計(jì)工具。Linux上面使用Anjuta和Glade以及Glademm軟件包可以搭建一個(gè)linux下面進(jìn)行C/C++軟件開(kāi)發(fā)的IDE環(huán)境,可以進(jìn)行GTK+/Gnome的應(yīng)用程序開(kāi)發(fā)。

  以前開(kāi)發(fā) Linux 程序時(shí)寫(xiě)出好的圖形化用戶(hù)界面比較難。在 GIMP 工具包 (GTK)誕生之后,這件事就變得比較容易了。當(dāng)Damon Chaplin 寫(xiě)出 GLADE 這個(gè)用于在 GTK 環(huán)境下生成圖形化用戶(hù)界面的工具后,就更容易了。但是GLADE 仍然不能算是一個(gè)“集成開(kāi)發(fā)環(huán)境”(如 Visual Basic 等等.),因?yàn)槌绦騿T不能在 GLADE 的環(huán)境下手動(dòng)修改 GLADE 產(chǎn)生的代碼。現(xiàn)在,這一切都已成為過(guò)去: Anjuta誕生了!

  Anjuta 利用 GLADE 生成優(yōu)美用戶(hù)界面的能力,加之以自己強(qiáng)大的源程序編輯能力,正成為一個(gè)極好的應(yīng)用程序快速開(kāi)發(fā)的集成環(huán)境(IDE)。以前,人們使用 GLADE 做界面,用 emacs 或 vi 等等編輯程序,再用某種終端模擬器編輯開(kāi)發(fā)項(xiàng)目。使用 Anjuta,所有這些繁雜零散的任務(wù)都可以在一個(gè)統(tǒng)一的、集成的、自然而然的環(huán)境下完成。

  一、軟件準(zhǔn)備:

  下載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選擇安裝上軟件開(kāi)發(fā)項(xiàng),這樣就安裝上了Glade,然后以root用戶(hù)登陸,安裝如下軟件包。

  rpm -ivh libzvt-2.0.1-0.ximian.6.6.i386.rpm //anjuta的依賴(lài)軟件包
  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會(huì)發(fā)現(xiàn)無(wú)法編譯軟件,這里要注意的幾個(gè)問(wèn)題

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

  三、進(jìn)行開(kāi)發(fā)第一個(gè)Anjuta1.1.97上的C/C++的程序

  讓我們先用 Anjuta 建立一個(gè)簡(jiǎn)單的Hello World 程序.

  建立一個(gè)新的項(xiàng)目

  先請(qǐng)打開(kāi) Anjuta。請(qǐng)選擇菜單項(xiàng) 編程-> 更多編程工具-->Anjuta IDE。GNOME應(yīng)用程序精靈 "GNOME2.0 application Wizard" 將會(huì)出現(xiàn)。盡管人們只要點(diǎn)擊“下一個(gè)”(Next)按鈕就可以,而不必去管精靈對(duì)話(huà)框上有些什么信息,這里還是希望您能讀一下對(duì)話(huà)框上的每一條信息。現(xiàn)在,在您讀完精靈第一步的對(duì)話(huà)框上的信息后,請(qǐng)按Next 按鈕。

  第二步非常關(guān)鍵。這里您需要決定您要建立的應(yīng)用程序的類(lèi)型。讓我們選擇 "Gnome2.0 project" ,然后繼續(xù)走下去。第三步要確定應(yīng)用程序的基本配置。請(qǐng)非常仔細(xì)地填入應(yīng)用程序的配置信息。在本教程中,請(qǐng)輸入以下信息。

  項(xiàng)目名稱(chēng): HelloWorld(程序項(xiàng)目名)注意項(xiàng)目名稱(chēng)中間不能有空格
  程序版本: 0.1(版本號(hào))
  程序作者: (你的名字)
  程序名稱(chēng): helloworld(程序名)
  程序語(yǔ)言: 有C,C++和C/C++三種選擇,這里選擇C
  程序類(lèi)型: 有三種選擇可執(zhí)行程序,動(dòng)態(tài)鏈接庫(kù)和靜態(tài)鏈接庫(kù).

  下面第四步編寫(xiě)項(xiàng)目的描述信息;

  第五步是項(xiàng)目的其他選項(xiàng),GNU版權(quán)聲明和程序的本地化支持項(xiàng),如果您不想要,您可以去除他們。您最好為本應(yīng)用程序項(xiàng)目選擇一個(gè)圖標(biāo),該圖標(biāo)將會(huì)出現(xiàn)在GNOME 應(yīng)用程序菜單中。這里我們選取 Hello World example作為項(xiàng)目名,在 Group 域選取 Applications。最后點(diǎn)擊 Next 按鈕和 Finish 按鈕。這時(shí)本應(yīng)用程序項(xiàng)目就建立起來(lái)了。

  因?yàn)槲覀冎皇窃诮⒁粋€(gè)例子程序,我們可以輕松前行。如果我們是在建立一個(gè)要在現(xiàn)實(shí)世界使用的應(yīng)用項(xiàng)目,那我們?cè)谔顚?xiě)應(yīng)用程序精靈每一步的參數(shù)時(shí)可要格外小心,因?yàn)樗鼈儗?duì)您的應(yīng)用程序項(xiàng)目來(lái)說(shuō)非常重要。

  設(shè)計(jì)用戶(hù)界面

  在與應(yīng)用程序精靈對(duì)話(huà)結(jié)束之后,Anjuta 就開(kāi)始建立您的應(yīng)用程序項(xiàng)目的目錄結(jié)構(gòu),運(yùn)行參數(shù)配置腳本并建立應(yīng)用項(xiàng)目本身。整個(gè)創(chuàng)建過(guò)程的進(jìn)行情況顯示在 Anjuta 開(kāi)發(fā)環(huán)境的下部。創(chuàng)建過(guò)程結(jié)束后,屏幕的左邊示出應(yīng)用項(xiàng)目樹(shù)結(jié)構(gòu)。這個(gè)樹(shù)結(jié)構(gòu)中包含您的源程序文件,說(shuō)明文件和圖形文件。


圖1

  現(xiàn)在是啟動(dòng) GLADE 并用其設(shè)計(jì)圖形用戶(hù)界面的時(shí)候了。請(qǐng)到菜單項(xiàng) 項(xiàng)目->編輯圖形界面 去運(yùn)行 GLADE。您將看到三個(gè)窗口: 1) Glade 主窗口,2) 屬性窗口,and 3) 繪圖工具窗口。

  取一個(gè)簡(jiǎn)單的 GTK 視窗就行了。請(qǐng)點(diǎn)擊 Glade 主視窗上列出的第一項(xiàng) (hello_app), 然后按 Del 刪除鍵。現(xiàn)在到工具視窗(Palette),點(diǎn)擊第一個(gè)圖標(biāo)。這時(shí)一個(gè)空白的 GtkWindow 建起來(lái)了。這將是我們的應(yīng)用程序的主視窗 window1。再到屬性視窗(Properties),敲入標(biāo)題“Hello World!”。現(xiàn)在再到工具視窗上選取一個(gè)表格(table)2行2列放到主視窗 window1 上。這樣,主視窗被切分為同等大小的4個(gè)部分。

  現(xiàn)在再?gòu)墓ぞ咭暣爸腥〕鰞蓚€(gè)按鈕,分別加到主視窗下面的兩個(gè)框中。再把這兩個(gè)按鈕的名字和標(biāo)簽屬性設(shè)置如下:

  左按鈕:
  名字: BT_OK
  標(biāo)簽: OK
  右按鈕:
  名字: BT_EXIT
  標(biāo)簽: Exit

  在視窗的上半部,左邊再加上一個(gè)標(biāo)簽控件;在上半部右邊加上一個(gè)輸入框 Entry 控件。該輸入框的名字取為 ENTRY。將上述標(biāo)簽控件的標(biāo)簽屬性置為 'What's your name,sir?'。

  現(xiàn)在在屬性視窗的屬性檔(Signals tab)上把兩個(gè)按鈕都和 Clicked事件連接起來(lái)。使用GLADE預(yù)設(shè)的反向調(diào)用函數(shù)名。請(qǐng)不要忘記點(diǎn)擊 Add 按鈕。這種常見(jiàn)的錯(cuò)誤會(huì)導(dǎo)致產(chǎn)生空白的 callbacks.c 文件。在源文件callbacks.c上,我們將會(huì)通過(guò) Anjuta界面加入 源代碼。

  現(xiàn)在,主視窗看起來(lái)似乎不那么漂亮。您可以試試改變視窗的寬度和高度,以及試試改改水平和垂直包容框的幾個(gè)屬性,看看能不能讓視窗好看些。(注意:您可到菜單View,選擇控件樹(shù),然后選擇控件。) 下面是一些屬性的設(shè)置:

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

  把這些屬性改來(lái)改去后,我的主視窗的樣子如下:


圖2

  設(shè)計(jì)好界面后,在Glade主視窗上點(diǎn)擊“存盤(pán)”按鈕,然后再點(diǎn)擊“聯(lián)編”按鈕. 這就按您新設(shè)計(jì)的界面更新了您的 應(yīng)用項(xiàng)目的src目錄下的源文件 interface.c。現(xiàn)在,讓我們選菜單 Project -> Exit,回到 Anjuta 用戶(hù)界面下。開(kāi)始編程啦!

  編輯程序

  現(xiàn)在回到 Anjuta 環(huán)境中來(lái),您應(yīng)該可以在屏幕左邊的項(xiàng)目源程序列表中看到 callbacks.c. 雙點(diǎn)擊打開(kāi)該程序. 這樣我們?cè)贏njuta集成開(kāi)發(fā)環(huán)境的左邊就可以編輯該程序了。

  有時(shí)一事物如果是有色彩的話(huà)就會(huì)變得更容易理解、更有趣。Anjuta 的“語(yǔ)法強(qiáng)調(diào)色”功能 (在“Format”菜單上)就屬于這種情況. Anjuta還有很多很多有用的功能,您可以慢慢品玩。也許現(xiàn)在花點(diǎn)時(shí)間熟悉熟悉這個(gè)集成環(huán)境是很有好處的。

  現(xiàn)在回到 callbacks.c 文件,我們看到兩個(gè)反向調(diào)用函數(shù): on_BT_OK_clicked 和on_BT_EXIT_clicked. 讓我們?cè)诘诙€(gè)函數(shù)中加入一個(gè)函數(shù)調(diào)用:gtk_main_quit()。這樣,該函數(shù)變成:

  #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();
  }

  這個(gè)函數(shù)調(diào)用的目的是當(dāng)用戶(hù)點(diǎn)擊退出按鈕時(shí),整個(gè)應(yīng)用程序會(huì)結(jié)束。與此相仿,我們?cè)?on_BT_OK_clicked函數(shù)中加入下列函數(shù)調(diào)用:


  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);
  }

  生成目標(biāo)代碼,執(zhí)行,以及發(fā)行。

  現(xiàn)在到了測(cè)試您程序的時(shí)候了;這一定很有趣。先選擇菜單項(xiàng)創(chuàng)建->創(chuàng)建項(xiàng)目。這時(shí)Anjuta就開(kāi)始編譯和鏈接項(xiàng)目里的源程序main.c, interface.c, support.c and callbacks.c,然后將產(chǎn)生的可執(zhí)行文件hello放到 src 目錄。編譯器一般會(huì)用 gcc。

  如果您幸運(yùn),編譯過(guò)程沒(méi)有任何錯(cuò)誤信息的話(huà),請(qǐng)選菜單項(xiàng)“創(chuàng)建->執(zhí)行程序”于是Anjuta開(kāi)辟一個(gè)終端視窗,并在其上運(yùn)行您的應(yīng)用程序 HelloWorld! 請(qǐng)?jiān)谳斎肟蛏陷斎肽拿郑缓簏c(diǎn)擊 OK 按鈕。希望這時(shí)您的應(yīng)用程序回您一個(gè)問(wèn)候:Hello ... 您可再敲入一個(gè)問(wèn)候詞,然后點(diǎn)退出按鈕 Exit,看看程序能否正常退出。如果正常退出,那真好! 您的辛勤勞動(dòng)終于有了結(jié)果!

  這時(shí)您可把您的應(yīng)用程序安裝到視窗系統(tǒng)中去:選菜單項(xiàng) 創(chuàng)建->安裝盡管您現(xiàn)在也許并不想為您的應(yīng)用程序創(chuàng)建一個(gè)tarball文件,但也許以后您要發(fā)行軟件時(shí)就需要這樣做了。在發(fā)行應(yīng)用程序前,務(wù)必要填好 TODO,ChangeLog,INSTALL 和 README 這幾個(gè)文件。要?jiǎng)?chuàng)建一個(gè)應(yīng)用程序的發(fā)行版,請(qǐng)點(diǎn)擊 創(chuàng)建->創(chuàng)建發(fā)行套件 創(chuàng)建過(guò)程也許會(huì)持續(xù)幾秒鐘,最終會(huì)在 /home/(username)/Projects/helloworld/ 目錄下建立一個(gè)文件 helloworld-0.1.tar.gz。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐东| 寿宁县| 绍兴县| 宜丰县| 瑞安市| 霸州市| 柏乡县| 峨山| 牟定县| 西峡县| 开原市| 鸡东县| 平利县| 阜南县| 甘德县| 新建县| 太白县| 沈丘县| 惠东县| 蓝田县| 韩城市| 佛坪县| 伊宁市| 泰顺县| 广德县| 柘城县| 金门县| 成武县| 竹溪县| 阳曲县| 大名县| 宁河县| 香港 | 潜江市| 博野县| 珠海市| 吉安县| 略阳县| 凤台县| 阿图什市| 淮北市|