Eclipse是一款被廣泛應(yīng)用的開發(fā)工具,最初它是為編寫Java程序而設(shè)計的,但由于它良好的架構(gòu)并作為開源軟件來發(fā)行,有很多的公司和個人以它為基礎(chǔ)開發(fā)了插件,使得Eclipse有了越來越豐富的功能。
CDT (C/C++ Development Tooling)是Eclipse的一個插件,它為Eclipse提供了開發(fā)C/C++項目的支持,大家可以用它來編寫自己的程序。
下面簡單介紹一下Eclipse CDT的安裝和使用方法。
Eclipse 的安裝
Eclipse
是用 Java
語言編寫的軟件,要運行它,就必須首先安裝Java虛擬機軟件。要開發(fā)C語言的程序,就必須有C語言的Toolchain(編譯器、鏈接器、調(diào)試器等各種系統(tǒng)工具),Eclipse中并不提供這些功能,我們需要單獨安裝。
安裝 Java 虛擬機
Win32
從校內(nèi)FTP服務(wù)器10.1.0.155下載Java虛擬機,并運行安裝。
Linux
Ubuntu Linux 中已經(jīng)帶有 Java 虛擬機,執(zhí)行命令:
apt-get install sun-java6-jdk
便可以安裝。
安裝 Toolchain (編譯器、鏈接器和調(diào)試器)
Win32
在Windows上,我們可以使用GNU為我們提供的Toolchain,其中一個比較容易使用的版本是MinGW,它包括了GNU GCC、binutils、gdb等工具包。
可以從ftp://10.1.0.155/pub/Develop/IDE/Eclipse.CDT/mingw.exe下載,下載后執(zhí)行,并將它們解壓到C盤根目錄中。注意,必須是C盤的根目錄,不要吝惜你的C盤,編譯器這樣重要的東西絕對有必要放在上面。解壓后,MinGW即被安裝在C:mingw內(nèi)。
如果你希望能夠從命令行啟動gcc等程序,可以修改PATH,并將C:mingwbin加入其中。
Linux
大多數(shù)的Linux系統(tǒng)都會安裝有GNU的Toolchain,在Ubuntu Linux上,如果你的系統(tǒng)沒有安裝,請使用命令
apt-get install build-essential
來安裝。
安裝 Eclipse For C/C++
從ftp://10.1.0.155/pub/Develop/IDE/Eclipse.CDT/下載跟自己的系統(tǒng)相對應(yīng)的版本,并解壓到磁盤上即可,不需要特殊的安裝程序。這個版本的Eclipse,并未包含開發(fā)Java的功能。
運行Eclipse
在安裝好Eclipse之后,執(zhí)行該目錄中的eclipse.exe和eclipse文件即可開啟它。由于Eclipse是一個功能非常豐富的系統(tǒng),啟動它會需要一些時間,特別是在配置比較低的電腦上
選擇Workspace
Eclipse一旦運行,便會彈出一個窗口,要求用戶選擇一個工作空間(Workspace),在Eclipse運行之后,所有的項目和文件缺省情況下都會存儲在這個工作空間中,并且我們對Eclipse進(jìn)行的任何設(shè)置也都是和Workspace相關(guān)聯(lián)的。因此除非有特別的需要,沒有什么必要經(jīng)常切換工作空間。
選擇好后點確定鍵,Eclipse會繼續(xù)啟動進(jìn)程。
Eclipse窗口的組成
Eclipse的窗口由很多個部分組成,其中每一個部分稱為一個View,而將一些View按照一定的布局組合在一起,則稱為一個Perspective。每個View都有自己的功能,而不同的Perspective則通常適用于不同的工作。譬如"C/C++"這個Perspective通常用來做C/C++的開發(fā),而"Debug"這個Perspective通常用來做Debug。
在屏幕的左上角,菜單的下面有按鈕可以切換Perspective,同樣,在Eclipse的菜單中也有項目專門用來做同樣的事情。
開發(fā)C語言程序
創(chuàng)建項目
與TC開發(fā)不同,在Eclipse中開發(fā)程序,必須首先創(chuàng)建一個項目,然后才能在這個項目中編寫自己的程序。否則即便編寫了程序也沒有辦法編譯、運行。創(chuàng)建項目的步驟如下:
File | New | Project?
1. 輸入項目的名字,注意不要使用中文,這可能導(dǎo)致一些奇怪的問題
2. 在Project Types中選擇Hello World ANSI C Project,這個類型的項目對于我們的程序設(shè)計課程是很合適的,見圖
3. 點擊Finish按鈕
這時在項目列表中就會看到新創(chuàng)建的項目。
打開源文件
展開項目內(nèi)容列表,會發(fā)現(xiàn)其中有src目錄,展開該目錄,可以看到一個與項目同名的C文件,雙擊這個文件即可看到Eclipse為我們生成的一個很簡單的Hello World程序。我們可以直接對其進(jìn)行修改,編寫自己的程序。
編輯源文件
編輯源文件并不困難,Eclipse會將代碼用多種顏色顯示代碼,并且會在文件編輯的過程中為我們維護代碼縮進(jìn)。除此以外,Eclipse還為程序員編寫源代碼提供了很多方便的功能,代碼代碼重排版就是其中的一個。
代碼重排版
在編寫代碼的過程中,由于各種的原因,代碼的格式會發(fā)生變化,會混亂,不再符合我們課程提供的要求。這時,可以使用代碼重排版直接調(diào)整代碼的格式。具體的操作步驟為:
Ctrl-A選擇全部源代碼 Ctrl-Shift-F對代碼進(jìn)行重排版
排版之后的格式基本上是符合我們的要求的,同時看起來也會更清晰。
Build
編寫好代碼之后,在執(zhí)行程序之前首先是編譯鏈接,在Eclipse中,這個步驟稱為Build Project。點擊工具欄上的錘子圖標(biāo),如下圖中(1)所示
在Build時,若程序中有錯誤,Eclipse會將它顯示出來。行首的紅色或者黃色標(biāo)記分別表示錯誤和警告,如圖中(2)所示。錯誤的具體原因,會顯示在屏幕的下方,如圖中(3)所示。
如果有錯誤,Eclipse是不能生成最終的可執(zhí)行文件的,在執(zhí)行程序前,必須要修正所有的錯誤。
修改過源代碼之后,Eclipse不會自動重新Build該項目,需要我們手工執(zhí)行該操作,可以再次點擊工具欄上的錘子型圖標(biāo),也可以使用快捷鍵ctrl-b。
執(zhí)行程序
若Build Project成功,則可以運行程序。點擊工具欄上的綠色Play圖標(biāo)或按快捷鍵“Ctrl-F11”即可運行程序。運行程序后,輸入和輸出都將在源代碼編輯窗口下方的ConsoleView中進(jìn)行,最簡單的方法是把網(wǎng)頁上的輸入內(nèi)容直接復(fù)制粘貼到Console中。
調(diào)試 C 語言程序
開始調(diào)試
調(diào)試程序和執(zhí)行程序不同,調(diào)試程序時我們可以使用斷點、單步執(zhí)行、Watch等工具來查看程序的運行狀態(tài)。在Eclipse中可以直接使用GDB來調(diào)試程序,點擊工具欄上的“蟲子”按鈕或者按快捷鍵“F11”便可以調(diào)試過程。
調(diào)試視圖
開始調(diào)試后,系統(tǒng)會彈出一個窗口并建議我們切換的調(diào)試視圖,這時可以點擊“Yes”。調(diào)試視圖與編碼視圖不同,主要是在代碼上方顯示出了正在執(zhí)行的進(jìn)程和當(dāng)前函數(shù)中自動變量的值。
監(jiān)視變量的值
有時我們要監(jiān)視的變量的值并沒有直接顯示出來,這時我們可以讓它在Expression視圖中來顯示。
Step Into 與 Step Over
單步執(zhí)行,就是每次執(zhí)行一行程序,執(zhí)行完這一行程序后,調(diào)試器會將程序執(zhí)行暫停,這時我們就可以去查看變量的值。
Step Into與Step Over都是單步執(zhí)行,其差別在于當(dāng)我們定義了一個函數(shù),并在調(diào)用該函數(shù)的語句行上單步執(zhí)行時,是進(jìn)入到函數(shù)的內(nèi)部還是將函數(shù)作為一個整體來執(zhí)行。對于標(biāo)準(zhǔn)庫函數(shù)如printf和scanf等,即便是使用Step Into,Eclipse也不會對這個函數(shù)進(jìn)行單步執(zhí)行。
設(shè)置斷點
單步執(zhí)行雖然可以讓我們監(jiān)控到程序每一步的狀態(tài),但對于比較大比較長的程序來說,一步一步運行未免太浪費時間。這時我們可以使用斷點功能,讓程序在某個指定的位置停止下來,而不是每運行一行都停下來。
當(dāng)程序的執(zhí)行在斷點處停下來后,要使其繼續(xù)運行,可以使用“Resume”功能。
終止調(diào)試
Eclipse可以同時調(diào)試多個程序,為了避免占用太多的資源,當(dāng)發(fā)現(xiàn)了程序中的錯誤后,就應(yīng)該終止調(diào)試。如果不將它們終止,這些被調(diào)試的程序所占用的資源也就不能被釋放,會使系統(tǒng)的速度變得很慢。
常見問題
為何使用數(shù)學(xué)函數(shù)后Build Project時會出錯
數(shù)學(xué)函數(shù),如sqrt和pow等雖然是C標(biāo)準(zhǔn)函數(shù)庫的一部分,但它們被獨立存儲在數(shù)學(xué)函數(shù)庫libm中,GCC在編譯鏈接程序時,是不會自動鏈接該庫的。我們必須手工修改配置讓Eclipse在調(diào)用GCC編譯鏈接程序時,將libm也加入到鏈接的文件列表中。具體的方法是:
在項目名稱上點擊鼠標(biāo)右鍵,選擇“Properties” 選擇C/C++ Build | Setting 選擇右側(cè)的GCC C Linker下的Libraries 然后在Libraries(-l)列表中加上m,然后點OK 按Ctrl-b重新Build項目
如何方便地給編譯添加參數(shù)
固然可以在project property里逐一添加參數(shù),但有時候要添加幾十條參數(shù)或者經(jīng)常要換參數(shù)來測試編譯,這樣一來會很麻煩. 解決方法就是建立makefile項目(比如新建工程里的C++ makefile project). makefile文件里要求按照在終端輸入的格式寫入編譯命令.非常方便修改.?
有那些編譯器可以選擇
Linux 下一般采用GCC和G++ Windows下可以使用GCC和G++移植版本,比如MinGW這類項目. Windows下也可以才用VC++的編譯器,但是現(xiàn)在Windows SDK提供的C++編譯器只能使用makefile來編譯,其命令為nmake?