天天看點

用eclipse來開發C/C++

越來越發現做通訊裝置主機軟體的,離新技術很遠,一直都C到底,工具也是一成不變,為了自我修煉,還是需要緊跟趨勢哈,這裡轉兩篇非常棒的文章,讓大家在eclipse裡開發C/C++,非常漂亮。

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

2004 年 3 月 09 日

我 們将概述如何在 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++ 項目

用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來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用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 項目

用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
回頁首

關鍵的 CDT IDE 功能

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

  • 文法突出顯示:CDT IDE 識别 C/C++ 文法,并為文法突出顯示提供了完全可配置的代碼着色以及代碼格式化功能:

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

用eclipse來開發C/C++
  • 提綱:Outline 視窗子產品提供了有關出現在源代碼中的過程、變量、聲明以及函數的快速視圖。利用 outline,您可以友善地找到源代碼中的适當引用,或者甚至搜尋所有項目源代碼。
  • 代碼輔助:這個代碼完成功能類似于可在 Borland C++ Builder 或 MS Visual Studio 中找到的功能。它使用了 代碼模闆,并且隻有助于避免愚蠢的文法錯誤:

圖 4. 有助于使用正确的語言文法的代碼輔助功能

用eclipse來開發C/C++
  • 代碼模闆:由代碼輔助功能使用的代碼模闆是标準 C/C++ 語言文法結構的定義。您也可以定義自己的代碼模闆來擴充您自己的快捷鍵,如用于 

    author

     或 

    date

     關鍵字的快捷鍵。在 Window => Preferences => C/C++ => Code Templates 中,可以添加新模闆并檢視完整的模闆清單。也可以将模闆作為 XML 檔案導出和導入。

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

用eclipse來開發C/C++
  • 代碼曆史記錄:即使您沒有使用 CVS 或其它源代碼版本管理軟體,也可以跟蹤項目源代碼中的本地更改。在選擇的檔案上單擊滑鼠右鍵,從上下文菜單選擇 Compare With => Local History...:

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

用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
回頁首

建構并運作項目

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來開發C/C++

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

圖 8. 為項目建立運作概要檔案

用eclipse來開發C/C++

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

用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
回頁首

調試 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 輸出的程式。

用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
用eclipse來開發C/C++
回頁首

結束語

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

參考資料

  • 您可以參閱本文在 developerWorks 全球站點上的 英文原文. 
  • 請加入 Eclipse 平台社群,并從 eclipse.org下 載該平台。Eclipse 平台源代碼是根據 Common Public License 特許的。在 eclipse.org 上,您還将找到有關 Eclipse 項目的術語詞彙表和描述,以及技術文章和新聞討論區。Eclipse 平台白皮書較長的描述了 Eclipse 的主要元件和功能。 
  • 從 eclipse.org 下載下傳 CDT 項目的元件。 
  • 請通路 eclipse.org 上的 新聞討論區,以擷取與 C/C++ 插件相關的技術讨論和問題。 
  • 開發人員可以通過為該項目中每個元件所建立的 開發人員郵件清單(developer mailing lists)來參與和 C/C++ IDE 實作相關的讨論。 
  • CDT 項目使用 bugzilla 作為其錯誤和功能跟蹤系統。在 Eclipse bugzilla 頁上輸入錯誤/功能報告與填寫 Web 表單一樣簡單。 
  • 有關 Eclipse 平台及其工作原理的入門文章,請參閱由 Greg Adams 和 Marc Erickson 合著的developerWorks文章“ Working the Eclipse Platform”。 
  • 要開始使用 Eclipse 平台開發應用程式,請參閱由 David Gallardo 撰寫的 developerWorks文章“ Getting started with the Eclipse Platform”。 
  • 如果您有興趣建立自己的 Eclipse 插件,請參閱由 David Gallardo 撰寫的 developerWorks文章“ 開發 Eclipse 插件”。 
  • 從 Red Hat 下載下傳 Cygwin 工具箱。 
  • 從 MinGW.org 下載下傳 MinGW 工具箱。 
  • 在 gnu.org 上學習有關 GNU make 文法的更多知識。 
  • 從 gnu.org 下載下傳 dddGUI 調試器。 
  • 下載下傳 xxgdbGUI 調試器。 
  • 請通路 WebSphere Studio Plug-in Central,以擷取已被驗證為“Ready for WebSphere Studio Software”的插件的目錄。 
  • 學 習 IBM WebSphere Studio 工具的一個擴充,它提供了有助于您使用這些工具的資訊和工具。由于所有 WebSphere Studio 工具都基于 WebSphere Studio 工作台(WebSphere Studio Workbench),而工作台基于 Eclipse 架構,是以很容易通過使用 Eclipse 幫助擴充功能來擴充産品文檔。請參閱文章“ Adding Self-Help Support to WebSphere Studio Tools by Extending their Eclipse Help Systems”。 
  • 請在 developerWorks上查找更多的 Eclipse 使用者參考資料。 

關于作者

用eclipse來開發C/C++
用eclipse來開發C/C++
Pawel Leszek 是 Studio B 的一位作家,他是一位專長于 Linux/Win/Mac OS 系統體系結構和管理的獨立軟體顧問和作家。他具有許多作業系統、程式設計語言和網絡協定方面的經驗,尤其是 Lotus Domino 和 DB2 方面的經驗。Pawel 還是 LinuxWorld上一系列文章的作者,以及 PC World波蘭版的 Linux 專欄作家。Pawel 和他的妻子以及可愛的小女兒住在華沙。歡迎提問并提出意見;您可以直接給作者發電子郵件( [email protected])。

Eclipse+CDT+MinGW的配置與使用詳解(1) 

Eclipse 作為目前如日中天的開放式IDE,由于有大量插件支援,是以幾乎無所不能,除了Java開發的老本行之外,C/C++開發也不在話下。下面就給大家介紹如 何使用CDT(C/C++ Development Tools)進行C/C++開發。本文适合有一定Eclipse使用經驗的讀者,如果您對Eclipse的基本操作還很陌生,請先在網上搜尋相關教程進行 學習。 1. 相關軟體的下載下傳、安裝和配置 請先從 http://www.eclipse.org/downloads/下載下傳的Eclipse SDK,目前的最新版本是3.2.2,然後從http://www.eclipse.org/cdt/downloads.php 下載下傳與Eclipse版 本相配套的CDT,Eclipse 3.2.2所對應的CDT版本為3.1.2。為了能夠正常運作Eclipse,請確定你的計算機上裝有JDK,并且已經配置好了環境變量。由于CDT中并 不自帶編譯器,是以還需要安裝一個C/C++的編譯器,這裡給大家推薦的是MinGW,下載下傳位址為 http://www.mingw.org/download.shtml,以下将使用MinGW-3.1.0-1進行講解。以上軟體湊齊之後,便可以進行安裝配置了。 首先,解壓Eclipse SDK的安裝程式即可完成Eclipse的安裝,這裡假設将其解壓到C:/路徑下,則C:/下會出現一個名為“eclipse”的檔案夾。 接着,将CDT的安裝檔案同樣解壓到C:/路徑下,由于其解壓後同樣是名為“eclipse”的檔案夾,是以會插入或覆寫相應的檔案,解壓完成後,CDT的安裝工作便完成了。

然後,安裝MinGW,假設安裝到C:/MinGW目錄下。安裝完成之後進行相應的環境變量的配置。右鍵“我的電腦”->“屬性”->“進階”->“環境變量”,在“系統變量”中修改“Path”變量,在最後面添加“C:/MinGW/bin;”,注意,如果原來的Path變量值不是以“;”結尾的,一定要添加上一個分号在“C:/MinGW/bin;”之前,以起到分隔的作用。如圖1。

用eclipse來開發C/C++

圖1

接下來,在使用者變量中分别建立并配置如下變量,如圖2:

LIBRARY_PATH :C:/MinGW/lib 

C_INCLUDE_PATH :C:/MinGW/include 

CPLUS_INCLUDE_PATH :C:/MinGW/include/c++/3.2.3;C:/MinGW/include/c++/3.2.3/mingw32; 

C:/MinGW/include/c++/3.2.3/backward;C:/MinGW/include

用eclipse來開發C/C++

                                           圖2

以上步驟完成之後,請啟動Eclipse進行CDT相關參數的配置。在菜單欄中選擇“Window”,在其子菜單中選擇“Preferences…”,如圖3。

用eclipse來開發C/C++

圖3

在左邊的樹狀菜單中選擇“C/C++”->“Make”->“New Make Projects”,在右側選擇“Binary Parser”這一欄,然後在下面點選“PE Windows Parser”,并将其他選項取消選擇,完成之後點選“OK”,如圖4。

用eclipse來開發C/C++

圖4

由于在CDT中進行make操作的預設指令為“make”,而MinGW中用于make的程式為“mingw32-make.exe”,是以應将CDT中所有的預設“make”指令都改為“mingw32-make”。但是這樣更改非常麻煩,是以這裡提供一個投機取巧的方法,将“C:/MinGW/bin/mingw32-make.exe”複制一份副本,重命名為“make.exe”即可。

博文位址:http://blog.csdn.net/woshizy/article/details/2788109

繼續閱讀