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

用Eclipse平台進行C/C++開發

編輯:關於C++

我們將概述如何在 C/C++ 開發項目中使用 Eclipse 平台。盡管 Eclipse 主 要是一個 Java 開發環境,但其體系結構確保了對其它編程語言的支持。在本文 中,您將學習如何使用 C/C++ 開發工具箱(C/C++ Development Toolkit,CDT) ,它是可用於 Eclipse 的最佳 C/C++ 工具箱。

C 和 C++ 語言都是世界 上最流行且使用最普遍的編程語言,因此 Eclipse 平台(Eclipse Platform)提 供對 C/C++ 開發的支持一點都不足為奇。因為 Eclipse 平台只是用於開發者工 具的一個框架,它不直接支持 C/C++;它使用外部插件來提供支持。本文將向您 演示如何使用 CDT — 用於 C/C++ 開發的一組插件。CDT 項目致力於為 Eclipse 平台提供功能完全的 C/C++ 集成開發環境(Integrated Development Environment,IDE)。雖然該項目的重點是 Linux,但它在可使用 GNU 開發者工 具的所有環境(包括 Win32(Win 95/98/Me/NT/2000/XP)、QNX Neutrino 和 Solaris 平台)中都能工作。

CDT 是完全用 Java 實現的開放源碼項目( 根據 Common Public License 特許的),它作為 Eclipse SDK 平台的一組插件 。這些插件將 C/C++ 透視圖添加到 Eclipse 工作台(Workbench)中,現在後者 可以用許多視圖和向導以及高級編輯和調試支持來支持 C/C++ 開發。

由 於其復雜性,CDT 被分成幾個組件,它們都采用獨立插件的形式。每個組件都作 為一個獨立自主的項目進行運作,有它自己的一組提交者、錯誤類別和郵件列表 。但是,所有插件都是 CDT 正常工作所必需的。下面是 CDT 插件/組件的完整 列表:

主 CDT 插件(Primary CDT plug-in)是“框架”CDT 插件。

CDT 功能 Eclipse(CDT Feature Eclipse)是 CDT 功能組件 (Feature Component)。

CDT 核心(CDT Core)提供了核心模型(Core Model)、CDOM 和核心組件(Core Component)。

CDT UI 是核心 UI、視 圖、編輯器和向導。

CDT 啟動(CDT Launch)為諸如編譯器和調試器之類 的外部工具提供了啟動機制。

CDT 調試核心(CDT Debug Core)提供了調 試功能。

CDT 調試 UI(CDT Debug UI)為 CDT 調試編輯器、視圖和向導 提供了用戶界面。

CDT 調試 MI(CDT Debug MI)是用於與 MI 兼容的調 試器的應用程序連接器。

現在,讓我們研究一下如何在實際應用程序中使用這 些組件。圖 1 顯示了 Eclipse 中的 C/C++ 項目:

圖 1. 在帶有 CDT 插件的 Eclipse 中編輯 C/C++ 項目

安裝和運行 CDT

在下載和安裝 CDT 之前,首先必需確保 GNU C 編譯器(GNU C compiler,GCC) 以及所有附帶的工具(make、binutil 和 GDB)都是可用的。如果正在運行 Linux,只要通過使用適用於您分發版的軟件包管理器來安裝開發軟件包。在 Windows 平台上,將需要安裝 Cygwin 工具箱。Cygwin 是用於 Windows 的類 UNIX 環境,它包括 GCC 移植以及所有必需的開發工具,包括 automake 和 GNU 調試器(GNU Debugger,GDB)。Cygwin 是在 cygwin1.dll 庫基礎上構建的。 Cygwin 的備用解決方案是 Minimalist GNU for Windows(MinGW)。該工具是一 組可免費獲取、自由分發的特定於 Windows 的頭文件和導入庫,這些頭文件和導 入庫與 GNU 工具集(它們允許您生成不依賴於任何第三方 DLL 的本機 Windows 程序)結合在一起。如果您想要創建與 POSIX 兼容的 Windows 應用程序,那麼 MinGW 是最佳選擇。MinGW 甚至可以在 Cygwin 安裝之上工作。Solaris 和 QNX 要求您從因特網下載並安裝其特定的 GCC、GNU Make binutils 和 GDB 移植。

假設您安裝了適當的 Java SDK/JRE 和 Eclipse 平台 SDK,並且它們都 正常運行。CDT 以兩種“方式”可用:穩定的發行版和試運行版 (nightly build)。試運行版未經完全測試,但它們提供了更多的功能並改正了 當前錯誤。安裝之前,請檢查磁盤上是否存在先前版本的 CDT,如果存在,請確 保完全除去它。因為 CDT 沒有可用的卸載程序,所以需要手工除去它。為了檢查 先前版本是否存在,轉至 CDT 插件所駐留的目錄:eclipse/plugins。接著,除 去所有以 org.eclipse.cdt 名稱開頭的目錄。需要做的最後一件事情是從 workspace/.metadata/.plugins 和 features 除去 CDT 元數據目錄 or.eclipse.cdt.*。

下一步是下載 CDT 二進制文件。注意:請下載適合 於您操作系統的正確的 CDT。遺憾的是,即使 CDT 是用 Java 編寫的,它也不是 與平台無關的。接著,將歸檔文件解壓到臨時目錄中,從臨時目錄將所有插件目 錄內容都移到 Eclipse plugins 子目錄。還需要將 features 目錄內容移到 Eclipse features 子目錄中。現在,重新啟動 Eclipse。Eclipse 再次啟動之後 ,更新管理器將告訴您它發現了更改並詢問您是否確認這些更改。現在您將能夠 看到兩個可用的新項目:C 和 C++。

創建新項目

在 Eclipse 中安 裝 CDT 之後,浏覽至 File => New => Project,在那裡,您將發現三個 新的可用項目類型:C(“Standard C Make Project”)、C++ (“Standard C++ Make Project”)和“Convert to C or C++ Projects”。從“Standard Make C++ Project”開始,為您的 項目創建源代碼文件。在 C/C++ Projects 視圖中,單擊鼠標右鍵,然後選擇 New => Simple => File。命名您的文件並保存它。您可能會用這種方法創 建許多頭文件以及 C/C++ 實現代碼文件。最後當然是 Makefile,GNU Make 將使 用它來構建二進制文件。對該 Makefile 使用常見的 GNU make 語法(請參閱參 考資料)。請記住:Makefile 要求您使用 Tab 字符而不是空格來產生縮進行。

您通常會將現有的源代碼導入 Eclipse(請參閱圖 2)。CDT 為執行這一 操作提供了一種便捷的方法:即使用 Import 向導,將文件從文件系統目錄復制 到工作台。轉至主菜單欄,選擇 File => Import => File System。單擊 Next,打開源目錄,選擇您想要添加文件的目錄。單擊 Select All 以選擇目錄 中的所有資源,然後從頭到尾檢查,取消選擇您不打算添加的那些資源。指定將 作為導入目標的工作台項目或文件夾。還可以通過從文件系統拖動文件夾和文件 並將它們放入 Navigator 視圖中,或者通過復制和粘貼來導入文件夾和文件。

圖 2. 將現有的源代碼導入 CDT 項目

關鍵的 CDT IDE 功能

CDT IDE 是 在 CDT UI 插件所提供的通用可擴展編輯器基礎上構建的。然而,該模塊仍處於 開發階段,所以它仍缺少一些重要的實用程序,如類浏覽器或語言文檔浏覽器。 CDT IDE 的主要功能是:

語法突出顯示:CDT IDE 識別 C/C++ 語法,並 為語法突出顯示提供了完全可配置的代碼著色以及代碼格式化功能:

圖 3. 不成功的編譯之後突出顯示的語法錯誤標記

提綱:Outline 窗口模塊提供 了有關出現在源代碼中的過程、變量、聲明以及函數的快速視圖。利用 outline ,您可以方便地找到源代碼中的適當引用,或者甚至搜索所有項目源代碼。

代碼輔助:這個代碼完成功能類似於可在 Borland C++ Builder 或 MS Visual Studio 中找到的功能。它使用了代碼模板,並且只有助於避免愚蠢的語 法錯誤:

圖 4. 有助於使用正確的語言語法的代碼輔助功能

代碼模板:由代碼輔助功能使 用的代碼模板是標准 C/C++ 語言語法結構的定義。您也可以定義自己的代碼模板 來擴展您自己的快捷鍵,如用於 author 或 date 關鍵字的快捷鍵。在 Window => Preferences => C/C++ => Code Templates 中,可以添加新模板並 查看完整的模板列表。也可以將模板作為 XML 文件導出和導入。

圖 5. 預定義的 C/C++ 代碼模板

代碼歷史記錄:即使您沒有使用 CVS 或其它源 代碼版本管理軟件,也可以跟蹤項目源代碼中的本地更改。在選擇的文件上單擊 鼠標右鍵,從上下文菜單選擇 Compare With => Local History...:

圖 6. 用 Local History 功能檢查源代碼中的更改

構建並運行項目

CDT 提供了一種設置項目構建選項的簡單方法。CDT 依賴於三個 GNU 工具:GCC、GDB 和 Make。因此,對用於調試的 GDB 或用於編譯的 GCC 和 Make 的依賴要求這些 應用程序可用於用戶想要使用的平台。大多數 Linux(通常和類 POSIX)源代碼 軟件包使用 autoconf 腳本來檢查構建環境,所以您必需運行 configure 命令, 該命令在編譯之前創建“Makefile”。CDT 沒有提供編輯 autoconf 腳本的方法,所以必需手工編寫它們;然而,您可以配置構建選項以在編譯之前 調用 configure 命令。

如果通過調用 make 命令來構建項目,那麼缺省 設置沒問題,但是,如果使用一種更復雜的方法進行構建,則必需在 Build Command 文本框中輸入適當的命令(例如,make -f make_it_all)。接下來,在 C/C++ Projects 視圖中,選擇 C/C++ project,然後單擊鼠標右鍵並選擇 Rebuild Project。所有來自 make、編譯器和鏈接程序的編譯消息都被重定向到 控制台窗口:

圖 7. 帶編譯器輸出的控制台窗口

編譯成功之後,您或許想要運行您的應用程序 。所有用於運行和調試的選項都位於主 Eclipse 菜單的 Run 菜單下。然而,必 須在早期定義用於運行項目的選項。可以通過轉至主菜單(在那裡,有用於運行 應用程序的不同概要文件)中的 Run... 選項來完成這一步;例如,可以將一個 概要文件用於測試目的,而將另一個概要文件用於運行最終版本。另外,可以定 義希望要傳遞給應用程序的參數,或者可以設置環境變量。其它選項用於設置調 試選項,例如使用哪個調試器(GNU GDB 或 Cygwin GDB)。圖 8 顯示了正在為 項目創建運行概要文件(run profile)。

圖 8. 為項目創建運行概要文件

當進入 C/C++ Projects 視圖,選擇您的項目, 單擊鼠標右鍵並在 Build Settings 選項卡上選擇 Properties 之後,就可以使 用更多的用於構建項目的常用選項。這些選項主要影響因遇到編譯錯誤而使構建 停止時所發生的情況。

調試 C/C++ 項目

CDT 擴展了標准的 Eclipse Debug 視圖,使之具備了調試 C/C++ 代碼的功能。Debug 視圖允許您在 工作台中管理程序的調試或運行。要開始調試當前項目,只要切換到 Debug 視圖 ,您將能夠在代碼中設置(並在執行過程中隨時更改)斷點/監測點並跟蹤變量 和寄存器。Debug 視圖顯示正在調試的每個目標的暫掛線程的堆棧框架。程序中 的每個線程都作為樹中的一個節點出現,Debug 視圖顯示正在運行的每個目標的 進程。

Eclipse 通過 CDT 調試 MI(CDT Debug MI)插件(其組件之一) 支持與機器接口(Machine Interface,MI)兼容的調試器。但 MI 調試器究竟是 什麼呢?通常情況下,象 ddd 和 xxgdb之類的第三方 GUI 調試器在實現調試功 能時都依賴於 GDB 的命令行接口(Command Line Interface,CLI)。遺憾的是 ,經過證實該接口非常不可靠。GDB/MI 提供了一種新的面向機器的接口,它非常 適合於想要直接解析 GDB 輸出的程序。

結束語

C/C++ 開發工具箱 (CDT)提供了一組功能強大的插件,這些插件可以幫助您用 Eclipse 開發 C/C++ 應用程序。雖然 CDT 仍處於開發階段,但您可以利用其現有的諸多功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved