這是我的Eclipse-CDT安裝、配置筆記,記錄了一些我喜歡的Eclipse-CDT配置設(shè)置,以及一些Eclipse-CDT的使用技巧。
有2種方式安裝Eclipse-CDT開發(fā)環(huán)境:
先安裝Eclipse基本環(huán)境:Eclipse Classic
然后安裝CDT擴(kuò)展:Eclipse C/C++ Development Tooling。
直接安裝集成的Eclipse C/C++開發(fā)環(huán)境:Eclipse IDE for C/C++ Developers
我選擇第2種:安裝集成的Eclipse C/C++開發(fā)環(huán)境方式,因?yàn)镋clipse IDE for C/C++ Developers中除過CDT外,還會(huì)包含其它常用于C/C++程序開發(fā)的Eclipse擴(kuò)展,它包括的擴(kuò)展參考這里。同時(shí),因?yàn)镋clipse IDE for C/C++ Developers中,去掉了在C/C++程序開發(fā)中,沒用的Java開發(fā)擴(kuò)展,所以它的安裝空間比Eclipse Classic小。
Eclipse IDE for C/C++ Developers的安裝文件就是個(gè)壓縮包:Windows下為zip包,Linux下為gzip壓縮的tar包。將它們解壓,就算安裝完成,然后執(zhí)行其中的可執(zhí)行文件eclipse,就可以啟動(dòng)Eclipse-CDT,當(dāng)然前提是你的系統(tǒng)上要配置好Java的運(yùn)行環(huán)境。
這里有我做的Eclipse IDE for C/C++ Developers的透明背景圖標(biāo),可用于建立Windows的快捷方式,或Gnome的啟動(dòng)文件的圖標(biāo)。
Eclipse的之所以強(qiáng)大,是因?yàn)樗斜姸嗟臄U(kuò)展/插件,可以自由地配置和組合,讓Eclipse成為滿足各類開發(fā)人員需求的集成環(huán)境??梢栽诰W(wǎng)址:Eclipse Plugin Central,中查找你需要的Eclipse擴(kuò)展,目前Eclipse Plugin Central已經(jīng)轉(zhuǎn)移到Eclipse Marketplace。下面列舉幾個(gè)我常用的擴(kuò)展。
Extended VS Presentation
這是一個(gè)Eclipse皮膚主題擴(kuò)展,因?yàn)槲也幌矚gEclipse默認(rèn)的子窗口圓角Tab風(fēng)格,就換上了這個(gè)Extended VS Presentation主題。Extended VS Presentation的風(fēng)格很簡(jiǎn)約,子窗口的Tab由圓角變?yōu)榫匦?,所以看起來占用的空間也小了。另外,Extended VS Presentation還支持編輯會(huì)話(Editing Session)管理,編輯會(huì)話指的是當(dāng)前打開的所有編輯器子窗口,Extended VS Presentation可以把當(dāng)前編輯會(huì)話保存起來,下次加載這個(gè)編輯會(huì)話時(shí),就可以將所有保存的編輯器子窗口打開,如果你用過Firefox的Session Manager擴(kuò)展,就很容易理解這個(gè)功能。
Extended VS Presentation的安裝很簡(jiǎn)單,從下面的地址中下載安裝包:
Extended VS Presentation的安裝包通常叫:de.loskutov.eclipseskins.extvs_[ver].jar,ver為版本號(hào)。將此jar包拷貝到Eclipse的安裝目錄下plugins子目錄中即可。
啟動(dòng)Extended VS Presentation如下:?jiǎn)?dòng)Eclipse后,在:Window→Preferences→General→Appearance設(shè)置頁(yè)中,選擇Current presentation為Extended VS Presentation即可。
當(dāng)希望在編輯器子窗口Tab中顯示所編輯文件的擴(kuò)展名時(shí),可以在:Window→Preferences→General→Appearance→Extended VS Presentation設(shè)置頁(yè)中,將Show file extension on tab復(fù)選框勾選。另外,其它Extended VS Presentation主題的選項(xiàng)也在這個(gè)設(shè)置頁(yè)中設(shè)定。
Extended VS Presentation的編輯會(huì)話管理和其它功能,參考官方地址中的使用說明和示例。
這是我的Eclipse-CDT中Extended VS Presentation擴(kuò)展啟動(dòng)后的效果:
Eclox
Eclox是一個(gè)Eclipse的Doxygen擴(kuò)展,Eclox使用圖形界面設(shè)置幫你生成:Doxygen配置文件(一般叫:doxyfile),然后通過調(diào)用外部的Doxygen工具解析工程中的源碼及注釋,最后生成程序文檔文件。
和VC類似,Eclipse也采用Workspace→Project,這種兩級(jí)的工程組織方式。當(dāng)啟動(dòng)Eclipse時(shí),它先會(huì)彈出Workspace Launcher這個(gè)對(duì)話框,讓你指定一個(gè)Workspace的位置。你可以在Workspace:后的ComboBox中選擇曾經(jīng)打開的Workspace位置,也可以輸入一個(gè)新的Workspace位置。
Workspace位置實(shí)際上是一個(gè)普通的目錄位置,唯一的區(qū)別是:在這里目錄中會(huì)有一個(gè)叫.metadata的子目錄,Eclipse會(huì)將Workspace相關(guān)的所有數(shù)據(jù)、配置等放在這個(gè)目錄里面。所以,如果你指定的Workspace位置中沒有.metadata目錄,Eclipse就會(huì)在你指定的位置創(chuàng)建.metadata目錄,即新建了一個(gè)Workspace。
啟動(dòng)Eclipse后,還可以在菜單File→Switch Workspace中切換到不同的Workspace中。
總之,Workspace是一組Project的容器,目的是:為了方便管理、組織工程。一個(gè)Project默認(rèn)時(shí),總會(huì)繼承它所在的Workspace中的一些設(shè)置。所以在用Eclipse-CDT建立C/C++工程之前,先設(shè)置好Workspace的配置是非常必要的。Eclipse中Workspace的配置都在:Window→Preferences 中設(shè)置。Preferences對(duì)話框中的配置項(xiàng)非常多,有時(shí)候很難找到需要的配置項(xiàng),這里有個(gè)技巧:Preferences對(duì)話框左邊配置項(xiàng)目錄樹的上面有個(gè)編輯框,它支持配置項(xiàng)名字索引查找,將配置項(xiàng)的名字輸入后,就會(huì)在目錄樹中列出所有包含此名字的配置項(xiàng),例如:想設(shè)置C/C++的語(yǔ)法高亮,但又記不清它在哪個(gè)配置項(xiàng)里,可以直接在查找編輯框中輸入:color,目錄樹中就會(huì)顯示所有包括"color"的配置項(xiàng),接下來就很容易找到C/C++的語(yǔ)法高亮配置了,如下圖:
下面是我通常使用的Workspace設(shè)置。
Workspace的一般配置
Workspace的一般配置在:Preferences對(duì)話框下的General配置項(xiàng)下。General配置項(xiàng)下的設(shè)置和Eclipse中特定的編程語(yǔ)言環(huán)境無(wú)關(guān),它是Eclipse基本環(huán)境的配置。我常用的General配置有以下一些:
顏色與字體
在:General→Appearance→Colors and Fonts 中,可以設(shè)置Eclipse各個(gè)窗口使用的字體、顏色。我通常設(shè)置的是:Basic→Text Font,它是Eclipse中大多數(shù)窗口顯示文本的字體,比如:C/C++的源碼編輯窗口就是繼承這里的字體來顯示C/C++源代碼,其字體配置位置為:C/C++→Editor→C/C++ Editor Text Font。在Windows下,我的Text Font默認(rèn)字體為:Courier New 10,在顯示文本時(shí),中文字符使用系統(tǒng)的默認(rèn)中文字體:宋體,最后表現(xiàn)出來的字體效果是等寬的,適合用作顯示源代碼文本。
快捷鍵
在:General→Keys 中,可以查看/設(shè)置Eclipse中使用的快捷鍵。每個(gè)快捷鍵的設(shè)置包括:Command,快捷鍵執(zhí)行的命令;Binding,快捷鍵的按鍵綁定;When,何時(shí)允許激活快捷鍵功能,比如:C/C++ Editor,表示在C/C++編輯器窗口中;Makefile Editor,表示在Makefile編輯器窗口中。在Conflicts列表中顯示沖突的快捷鍵。Keys配置項(xiàng)中包含了三套預(yù)置的快捷鍵設(shè)置模式:Default、Microsoft Visual Studio、Emacs。
Eclipse的啟動(dòng)與關(guān)閉
在:General→Startup and Shutdown 中,可以設(shè)置Eclipse啟動(dòng)與關(guān)閉時(shí)的行為,包括:Eclipse啟動(dòng)時(shí)自動(dòng)激活的插件。如果需要在Eclipse啟動(dòng)時(shí),顯示Workspace Launcher對(duì)話框來選擇工作的Workspace,可以將這里的Prompt for workspace on startup復(fù)選框選上(默認(rèn)為選上)。
工程自動(dòng)生成與保存
在:General→Workspace 中,包含與工程自動(dòng)生成、保存相關(guān)的選項(xiàng)。常用的有:
Build automatically:一般將這個(gè)選項(xiàng)去掉,因?yàn)槿绻x擇上的話,當(dāng)保存已修改的源代碼文件后,或執(zhí)行Clean工程后,都會(huì)自動(dòng)執(zhí)行Build工程。這個(gè)選項(xiàng)也可以通過Eclipse菜單:Project→Build Automatically 設(shè)置。
Save automatically before build:一般將這個(gè)選項(xiàng)選擇,意思是:在執(zhí)行Build工程之前,先保存工程,包括保存已修改的源代碼文件。
Workspace save interval:指定Workspace中所有工程的自動(dòng)保存時(shí)間間隔,以分鐘為單位。
文本文件的字符集編碼和換行符類型
在:General→Workspace 中,可以設(shè)置文本文件的字符集編碼和換行符類型。Eclipse默認(rèn)繼承系統(tǒng)的字符集設(shè)置和換行符類型,例如:在中文Windows下,Text file encoding的Default值為GBK。如果經(jīng)常編輯在Windows與Linux下同時(shí)工作的源代碼,為了方便工程的移植性,可以顯式地將Text file encoding設(shè)置為UTF-8,并將New text file line delimiter設(shè)置為Unix。
注意:
當(dāng)設(shè)置Text file encoding為UTF-8后,Eclipse新建的文本文件為不帶BOM的UTF-8編碼。
MinGW GCC 4和Linux GCC 4對(duì)不帶BOM的UTF-8編碼的源文件支持都很好,所以設(shè)置Text file encoding為UTF-8,是滿足方便代碼移植的需求的。
無(wú)論是使用Console還是GUI的形式,要在屏幕上輸出期望的字符串文本,應(yīng)滿足下列三個(gè)條件:
在源程序中,使用合適的基本字符類型,如:char、wchar_t。并對(duì)程序依賴的運(yùn)行環(huán)境、庫(kù),調(diào)用它們提供的接口,設(shè)置合適的字符集上下文,比如:C標(biāo)準(zhǔn)庫(kù)的setlocale()函數(shù),C++標(biāo)準(zhǔn)庫(kù)的locale類。
源程序本身用合適的字符集編碼保存。
程序依賴的運(yùn)行環(huán)境、庫(kù),它們必需能夠支持和適配程序所使用的字符集,例如:當(dāng)程序通過C標(biāo)準(zhǔn)庫(kù),最終向stdout輸出UTF-8編碼的字符串時(shí),下層用于顯示輸出的終端設(shè)備或控制臺(tái)環(huán)境,必需使用UTF-8編碼作為活動(dòng)字符集。Windows下可以用chcp.com更改當(dāng)前控制臺(tái)的活動(dòng)字符集,Gnome下可以在gnome-terminal的菜單中改變活動(dòng)字符集。
文本編輯器的設(shè)置
文本編輯器的一般配置在:Preferences→General→Editors→Text Editors。
這里的部分配置會(huì)影響到C/C++源代碼編輯器窗口中的源代碼顯示。Text Editors中常用的配置項(xiàng)有:
Displayed tab width:Tab的寬度,通常為4個(gè)空格。在C/C++源代碼編輯器中,這里的配置會(huì)被C/C++的Code Style中的配置覆蓋,即這里的配置對(duì)C/C++源代碼編輯器顯示源代碼文本不起作用。
Insert spaces for tabs:鍵入Tab時(shí),實(shí)際輸入的是Tab寬度數(shù)目的空格字符。在C/C++源代碼編輯器中,這里的配置會(huì)被Code Style中的配置覆蓋。
Highlight current line:高亮當(dāng)前編輯的文本行。
Show print margin:顯示列邊線。顯示邊線的列數(shù)Print margin column通常設(shè)置為80個(gè)字符。這個(gè)功能對(duì)程序員來說很貼心:當(dāng)一行代碼超過列邊線時(shí),程序員就知道這行寫地有些過長(zhǎng)了,應(yīng)該換行排版。列邊線通常設(shè)置為80個(gè)字符,是因?yàn)樵缙诘淖址K端通常是:25行 × 80字符/行。
Show line numbers:在每行文本前顯示行數(shù)。顯示行數(shù)后,行數(shù)和每行文本間看起來很擁擠,況且在Eclipse狀態(tài)欄已經(jīng)顯示當(dāng)前編輯光標(biāo)所在的行、列數(shù),所以我通常把這個(gè)設(shè)置去掉。
Show range indicator:在光標(biāo)所在的文本區(qū)域前顯示一個(gè)顏色塊,表示這個(gè)范圍內(nèi)的文本屬于同一個(gè)文本區(qū)域。這又是一個(gè)很貼心的功能,對(duì)于C/C++編輯器,一個(gè)函數(shù)過程就被識(shí)別為一個(gè)文本區(qū)域。
Show whitespace characters:以特殊的圖形符號(hào)顯示空白字符。空白字符包括:空格(SP)、Tab、回車(CR)、換行(LF)等。另外,除了在Workspace的Preferences中可以啟動(dòng)這個(gè)功能外,還可以在Eclipse的工具條中點(diǎn)擊按鈕:
Eclipse中引用MinGW工具集
Eclipse-CDT支持多種開發(fā)工具集(Development Toolchain):MinGW,Cygwin,Linux等,對(duì)于這些工具集,Eclipse-CDT會(huì)幫你自動(dòng)設(shè)置常用的編譯、鏈接選項(xiàng),并且可以在Project的Properties設(shè)置中使用圖形界面來調(diào)整編譯、鏈接選項(xiàng)。如果要使用Eclipse不直接支持的工具集,比如:VC的工具集,則需要自己寫Makefile來從Eclipse外部管理編譯、鏈接選項(xiàng)。
在Preferences對(duì)話框的位置:C/C++→New CDT project wizard 中,可以查看已被Eclipse識(shí)別的MinGW工具集:MinGW GCC。同時(shí),可以在這里把MinGW GCC設(shè)為某一特定Project type(工程類型,包括:Executable、Shared Library、Static Library、Makefile Project)的默認(rèn)工具集。
在Preferences對(duì)話框的位置:C/C++→New CDT project wizard→Makefile Project 中,可以進(jìn)行Makefile Project工程類型的工具集配置,這些配置也可以在每個(gè)工程的屬性中設(shè)置。
在Builder Settings屬性頁(yè)中,可以設(shè)置使用外部生成器(External builder)的命令,默認(rèn)是:make。有時(shí)MinGW工具集中將GNU Make命名為mingw32-make,可以在Build command:后輸入期望的生成器命令名。
在Behaviour屬性頁(yè)中,可以設(shè)置生成器的行為參數(shù),比如對(duì)于大多make類工具:Build工程時(shí),一般的參數(shù)為:all;Clean工程時(shí),一般的參數(shù)為clean。另外,最好將Build on resource save (Auto build)復(fù)選框去掉,它的意思是:當(dāng)保存資源時(shí),比如:保存源代碼文件時(shí),自動(dòng)進(jìn)行Build工程。
代碼風(fēng)格、模板與高亮語(yǔ)法
C/C++代碼風(fēng)格
C/C++代碼風(fēng)格的配置位置為:Preferences→C/C++→Code Style。C/C++代碼風(fēng)格設(shè)置,包括:縮進(jìn)方式、大括號(hào)({})的換行方式、單詞間的空白字符設(shè)置等。
在Code Style已有4個(gè)內(nèi)建的C/C++代碼風(fēng)格配置:K&R、BSD/Allman、GNU、Whitesmiths。對(duì)于應(yīng)用程序,我通常選擇BSD/Allman風(fēng)格,因?yàn)樗荳indows和Linux下都常用的代碼風(fēng)格。點(diǎn)擊New按鈕,選擇基礎(chǔ)的風(fēng)格后,再點(diǎn)擊Edit按鈕,進(jìn)入具體的代碼風(fēng)格元素的設(shè)置,最后可以配置出自己習(xí)慣的代碼風(fēng)格。
我通常在BSD/Allman基礎(chǔ)風(fēng)格中,修改Identation→Tab policy為Spaces only,意思是:在鍵入Tab時(shí),實(shí)際輸入的是Tab寬度的空格。使用空格代替Tab,對(duì)于用不同編輯器顯示源代碼時(shí)的效果,以及拷貝、粘貼源代碼后仍保持原有縮進(jìn)效果很有用。
自己配置的代碼風(fēng)格,可以在代碼風(fēng)格Edit對(duì)話框中,點(diǎn)擊Export按鈕導(dǎo)出保存成文件。在Code Style界面中可以用Import導(dǎo)入以前保存的風(fēng)格。
技巧:
如果編輯已有的源文件,但里面的代碼風(fēng)格和新加入的代碼風(fēng)格不同,怎樣快速地把以前的代碼轉(zhuǎn)換為現(xiàn)在的風(fēng)格?先選擇要轉(zhuǎn)換的代碼文本,然后在右鍵菜單中選擇:Source→Format,或快捷鍵Ctrl+Shift+F,就可以將選擇的代碼文本轉(zhuǎn)換為當(dāng)前的代碼風(fēng)格。
自動(dòng)生成代碼的模板
自動(dòng)生成代碼的模板在:Preferences→C/C++→Code Style→Code Templates 中設(shè)置。
自動(dòng)生成代碼的模板有三個(gè)級(jí)別:注釋(Comments)、代碼(Code)、文件(Files)。在代碼模板里可以使用很多Eclispe內(nèi)置宏,比如:${date},表示當(dāng)前的日期;${user},表示當(dāng)前的系統(tǒng)登錄用戶。Eclipse在自動(dòng)生成代碼時(shí),會(huì)將這些宏擴(kuò)展成實(shí)際對(duì)應(yīng)字符串。在:C/C++→Template Default Values 中,有4個(gè)宏:message、sourceDir、author、copyright,可以設(shè)置它們的值,在創(chuàng)建Hello World工程時(shí),自動(dòng)生成的代碼文件就會(huì)使用這里的宏。
C/C++代碼語(yǔ)法高亮設(shè)置
C/C++代碼語(yǔ)法高亮在:Preferences→C/C++→Editor→Syntax Coloring 中設(shè)置。
在Syntax Coloring中,CDT將語(yǔ)法元素分為四類:Code、Assembly、Comments、Preprocessor。選擇特定的語(yǔ)法元素后,可以更改它使用的字體顏色、斜體、加粗、下劃線效果等,設(shè)置后可以立即在下面的Preview中預(yù)覽代碼語(yǔ)法高亮效果。
我使用的代碼語(yǔ)法高亮方案,參考我的這篇文章:我的C/C++代碼語(yǔ)法高亮方案
代碼自動(dòng)完成
CDT默認(rèn)的C/C++代碼自動(dòng)完成功能配置已經(jīng)很好用了,只需要進(jìn)行調(diào)整即可。
自動(dòng)完成的代碼模板在:Preferences→C/C++→Editor→Templates 中設(shè)置。注意,這里的模板功能和Code Style中Code Templates之間的區(qū)別:Code Templates是Eclipse自動(dòng)生成代碼的模板,而這里的Templates是程序員輸入一部分代碼后,要求Eclipse自動(dòng)完成、補(bǔ)全所有代碼的模板。
可以自己新建,或更改已有的自動(dòng)完成代碼模板。自動(dòng)完成代碼模板分兩類:
C/C++代碼的自動(dòng)完成。此時(shí)模板的Context為C/C++,包括C/C++語(yǔ)句、代碼塊等的自動(dòng)完成。比如:建立一個(gè)Name為main的模板,在Pattern中輸入以下代碼文本模式:
編輯C/C++源代碼時(shí),輸入main(即模板的Name),然后按快捷鍵Alt+/,就可以直接插入上面的main函數(shù)代碼塊。${cursor}是個(gè)宏,表示當(dāng)這段代碼插入完成之后,編輯光標(biāo)停留的位置。
注釋的自動(dòng)完成。此時(shí)模板的Context為Comment,而且只在注釋區(qū)域內(nèi)進(jìn)行自動(dòng)完成。
注意:CDT中默認(rèn)的模板都是K&R的代碼風(fēng)格,喜歡BSD/Allman風(fēng)格的話,需要修改一下。
自動(dòng)完成代碼模板配置好后,接下來需要調(diào)整自動(dòng)完整功能的配置,位置在:Preferences→C/C++→Editor→Content Assist。
首先需要將Content Assist→Advanced中的:Select the proposal kinds contained in the 'default' content assist list 中的Template Proposals選擇上。這里的意思是:將Template Proposals放入Default Proposals中,Template Proposals是指模板候選代碼完成的類別,即使用上面提到的在Templates 中設(shè)置的內(nèi)容來進(jìn)行候選完成代碼的生成。另外還有其它類別的候選完成代碼:Help Proposals、Parsing-based Proposals、Word Proposals。
然后可以在Content Assist中的Insertion中,將Insert single proposals automatically去掉,這個(gè)選項(xiàng)的意思是:當(dāng)只有一個(gè)候選完成功能(Proposal)匹配當(dāng)前文本時(shí),直接插入文本到文件中,而不給用戶選擇的機(jī)會(huì)。
代碼自動(dòng)完成的啟動(dòng)方法:光標(biāo)定位到要自動(dòng)完成的文字后,選擇右鍵菜單中的:Source→Content Assist,或快捷鍵Alt+/,此時(shí)會(huì)彈出完成代碼上下文菜單,里面列舉了候選的完成代碼,用戶選擇一個(gè)后,就會(huì)插入這段完成代碼到源文件中。如果在彈出完成代碼菜單的情況下,繼續(xù)按快捷鍵Alt+/,菜單中的內(nèi)容就會(huì)在不同類別的候選完成代碼間切換,切換的順序可以在Content Assist→Advanced中的:Content assist cycling 中設(shè)置。代碼自動(dòng)完成效果如下:
名字高亮顯示
名字:指C/C++代碼中的變量名、函數(shù)名、宏名、自定義類型名等實(shí)體名字。名字高亮顯示(Mark Occurrences):指光標(biāo)停在一個(gè)名字上后,在這個(gè)名字的作用域內(nèi),高亮顯示所有出現(xiàn)的這個(gè)名字。
名字高亮顯示的在:Preferences→C/C++→Editor→Mark Occurrences 中設(shè)置。選擇:Mark occurrences of the selected element in the current file 選項(xiàng),就會(huì)啟動(dòng)名字高亮顯示功能。另外有個(gè):Keep marks when the selection changes 選項(xiàng),它的意思是:光標(biāo)第一次定位到某個(gè)名字上時(shí),高亮顯示這個(gè)名字,此時(shí)如果將光標(biāo)移到另外的非其它名字的位置,先前的那個(gè)名字依然被高亮顯示,直到光標(biāo)移到其它名字上時(shí),才會(huì)取消原來名字的高亮顯示,轉(zhuǎn)而高亮顯示新定位的名字。
另外,還可以在Eclipse的工具條中點(diǎn)擊按鈕:
名字高亮顯示所使用的顏色在:Preferences→General→Editors→Text Editors→Annotations 中設(shè)置,選擇Annotation types中的C/C++ Occurrences,然后設(shè)置顏色即可,我通常將它設(shè)置為正黃色(RGB(255,255,0))。
名字高亮顯示的效果如下:
任務(wù)標(biāo)記
CDT中使用任務(wù)(Task)來管理開發(fā)計(jì)劃,任務(wù)是Workspace級(jí)別的:一個(gè)Workspace中所有Project的任務(wù)都在Tasks窗口中列出,Tasks窗口可用菜單Window→Show View→Tasks調(diào)出。
任務(wù)標(biāo)記(Task Tag)是一種特殊格式的C/C++代碼注釋,CDT會(huì)掃描并識(shí)別這種注釋,生成一條任務(wù)。由任務(wù)標(biāo)記生成的任務(wù),在Task窗口中雙擊后,代碼編輯器會(huì)立即跳轉(zhuǎn)到對(duì)應(yīng)的任務(wù)標(biāo)記注釋位置,并在那行注釋前顯示圖標(biāo):
任務(wù)標(biāo)記的注釋格式在:Preferences→C/C++>→Task Tags 中設(shè)置,默認(rèn)的任務(wù)標(biāo)記格式是:注釋中包含"TODO"。任務(wù)標(biāo)記的使用效果如下:
符號(hào)檢索
符號(hào)檢索是對(duì)一個(gè)工程中所有C/C++源代碼中各種符號(hào)、名字引用的快速定位。目前優(yōu)秀的代碼編輯環(huán)境都支持符號(hào)檢索,比如:VC內(nèi)置的Intellisense、VC的Visual Assist X插件、SourceInsight等。目前,無(wú)論是哪種支持符號(hào)檢索的編輯環(huán)境,在使用符號(hào)檢索功能前,都需要對(duì)一個(gè)工程中的C/C++源代碼進(jìn)行掃描,生成索引數(shù)據(jù)庫(kù),例如VC的.ncb文件,就是VC的Intellisense生成的索引數(shù)據(jù)庫(kù)文件。
CDT的索引數(shù)據(jù)庫(kù)文件格式是.pdom,保存在Workspace的配置目錄:.metadata/.plugins/org.eclipse.cdt.core 目錄下,索引數(shù)據(jù)庫(kù)文件名格式一般是:[Project-Name].[Random-NO].pdom。
索引數(shù)據(jù)庫(kù)的生成選項(xiàng)在Workspace和Project中都可以配置,Project中的配置會(huì)覆蓋Workspace中的配置。Workspace中索引的配置在:C/C++→Indexer 中。
在Indexer中,可以選擇三種建立索引的基本方式:Fast C/C++ Indexer(快速索引)、Full C/C++ Indexer(完全索引)、No Indexer(無(wú)索引),一般選擇Fast C/C++ Indexer,就足夠?qū)σ话愎こ痰拇a進(jìn)行準(zhǔn)確地符號(hào)檢索了。如果覺得使用Fast C/C++ Indexer時(shí),有些符號(hào)仍然不能正確檢索,可以將選項(xiàng)Index all files選擇上,不過這樣建立的索引文件就會(huì)變大,建立索引的過程也會(huì)變慢,所以不建議在Workspace的索引配置里選擇這個(gè)選項(xiàng)。
在Files to index up-front中輸入的文件名,會(huì)在建立索引時(shí)首先被掃描,默認(rèn)是:stdarg.h、stddef.h、sys/types.h。
在Indexing strategy可以設(shè)置建立索引活動(dòng)的策略:
CDT的索引建立過程本來就有些慢,而上面兩個(gè)選項(xiàng)會(huì)使建立索引活動(dòng)變得更頻繁。不過為了在最新的代碼文件中使用準(zhǔn)確的符號(hào)檢索,一般將這兩個(gè)選項(xiàng)選擇。
在Build configuration for the index中,可以指定索引配置如何應(yīng)用到工程配置項(xiàng)中:
使用符號(hào)檢索的方法有多種。最簡(jiǎn)單、最常用的是跟蹤符號(hào)到其定義或聲明,方法是:按住Ctrl鍵,然后點(diǎn)擊某個(gè)符號(hào),就會(huì)跳轉(zhuǎn)到其定義或聲明位置。
備份與移植Workspace配置
好不容易設(shè)置起來的Workspace配置,怎樣將它備份呢?怎樣將一個(gè)已設(shè)置好的Workspace配置,應(yīng)用到所有Workspace上呢?
對(duì)一個(gè)Workspace配置的備份其實(shí)就是備份Workspace的配置目錄.metadata:先在Eclipse中刪除該Workspace的所有Project;然后在關(guān)閉Eclipse,在.metadata中搜索所有跟Project有關(guān)的文件,刪除掉,比如工程的索引數(shù)據(jù)庫(kù)文件.pdom;最后備份這個(gè).metadata目錄即可。
當(dāng)要使用以前備份好的Workspace配置時(shí),將備份的.metadata目錄拷貝到期望建立Workspace的目錄下,然后啟動(dòng)Eclipse時(shí),在Workspace Launcher對(duì)話框中,輸入那個(gè)Workspace目錄的位置,就可以讓Eclipse使用已設(shè)置好的Workspace配置。
Workspace Launcher對(duì)話框中顯示的最近打開的Workspace,保存在Eclipse的程序配置目錄中的:configuration/.settings/org.eclipse.ui.ide.prefs 文件中。org.eclipse.ui.ide.prefs中的RECENT_WORKSPACES值記錄了最近打開的Workspace,如果要清空最近打開的Workspace記錄,將它的值設(shè)置為空即可。
在C/C++ Projects窗口中顯示了當(dāng)前Workspace的所有Project,C/C++ Projects窗口可以使用菜單:Window→Show View→C/C++ Projects調(diào)出。
選定一個(gè)Project后,可以用菜單:Project→Properties,或右鍵菜單中的Properties(快捷鍵:Alt+Enter)調(diào)出特定工程的配置對(duì)話框。
工程配置會(huì)繼承Workspace中的一些配置,如果工程配置中改變這部分配置的話,工程的設(shè)置會(huì)覆蓋掉Workspace的設(shè)置。在工程配置中C/C++ General下有些配置項(xiàng)有:Enable project specific settings選項(xiàng),啟動(dòng)這個(gè)選項(xiàng)后,會(huì)在工程目錄下產(chǎn)生.settings目錄,里面記錄了工程特定的設(shè)置。
工程的工具集配置
Eclipse-CDT默認(rèn)能夠建立4種工程類型:Executable、Shared Library、Static Library、Makefile Project。
如果希望Eclipse-CDT,通過掃描工程中的源文件,幫你自動(dòng)生成makefile,則可以選擇前3種工程類型,這種情況通常應(yīng)用在使用Eclipse新建一個(gè)工程時(shí)。
如果希望使用手工編輯makefile的方式,來管理工程的生成,可以選擇Makefile Project的工程類別。
實(shí)際上,只要在工程配置中進(jìn)行適當(dāng)設(shè)置,Eclipse的每一種工程類別都能用來管理外部已存在的工程。
當(dāng)我使用Eclipse新建一個(gè)工程時(shí),通常使用:CDT自動(dòng)生成makefile,配合外部make工具的方式。配置方式如下;
建立一個(gè)Executable類型的工程。在工程配置中的C/C++ Build→Tool Chain Editor中的Current toolchain可以指定工程特定的工具集,例如:MinGW GCC。在Current builder中,將默認(rèn)的:CDT Internal Builder(CDT內(nèi)建的make工具),改為:Gnu Make Builder。最后在Select Tools中可以替換工具集中的每種工具。
聯(lián)系客服