要求
在開始 C 或 C++ 開發之前,您必須要安裝以下軟件:
NetBeans IDE 6.0
NetBeans C/C++ 包
GNU C 和 C++ 編譯器、make 和 gdb(Windows 平台 );GNU C 和 C++ 編譯器,或 Sun C 和 C++ 編譯器、make 和 gdb(Solaris 和 Linux 平 台)
有關下載和安裝所需軟件的詳細信息,請參見 NetBeans IDE 6.0 安裝說明和安 裝並配置 C/C++ 支持。
樣例項目
只是想體驗一些項目嗎?請在 IDE 中,選 擇“文件”>“新建項目”,然後打開“樣例”類別、 “C/C++ 開發”子類別和“C/C++”子類別。IDE 提供了一些 C 和 C++ 樣例項目來幫助您熟悉 IDE。
創建 C 和 C++ 項目
NetBeans C/C++ 支持讓您 能用生成的 makefile 創建 C 和 C++ 應用程序和庫項目,還能從現有代碼創建 C 和 C++ 項目。
對於 C/C++ 應用程序、動態庫或靜態庫項目,IDE 控制應用程序如何生成、 運行和調試的各個方面。您可在創建項目時,或在“項目屬性”對話框中指定項 目設置。IDE 生成一個 makefile 來存儲所有設置。
創建 C/C++ 應用程序項目
選 擇“文件”>“新建項目”以打開“新建項目”向導。
在向導中,選擇“C/C++”類別。
向導為創建新項目提供四種選項 :“基於現有代碼的 C/C++ 項目”、“C/C++ 應用程序”、 “C/C++ 動態庫”和“C/C++ 靜態庫”。選擇“C/C++ 應用程序 ”,然後單擊“下一步”。
通過向導 並使用缺省設置來創建一個“C/C++ 應用程序”項目。您可以選擇項目的名稱和 位置。
單擊“完成”退出向導。
現已創建了一個具有四個邏輯文 件夾的項目。邏輯文件夾不是目錄。它是一種組織文件的方式,並不反映文件在磁盤上的物 理存儲位置。添加到邏輯文件夾的文件將自動成為項目的一部分,並且在生成項目時進行編 譯。
添加到“重要文件”文件夾中的文件不是項目的一部分,在生成項目 時不會編譯。這些文件只是用於參考,並在您用現有 makefile 創建項目時提供方便。
在項目的邏輯視圖與物理視圖之間切換
一個項目同時具有邏輯和物理視圖。您可 以在項目的邏輯視圖與物理視圖之間進行切換。
選擇“文件”選項卡。該 窗口顯示項目的物理視圖。它按原樣體現磁盤上存儲的文件和文件夾。
選擇 “項目”選項卡。該窗口顯示項目的邏輯視圖。
在項目中 添加文件和文件夾
您可以在項目中添加邏輯文件夾。
右鍵單擊應用程序項目的項 目節點,選擇“新建邏輯文件夾”。一個新的邏輯文件夾將被添加到項目中。
右鍵單擊新邏輯文件夾並選擇“重命名”。輸入您想要的新文件夾的名稱 。
您可以在現有文件夾中添加文件和文件夾。邏輯文件夾可以嵌套。
在項目 中添加新文件
您可以在項目中添加新文件。
右鍵單擊“源文件”文件 夾,然後選擇“新建”。
從子菜單中選擇在“主 C 文件”。
在“名稱和位置”頁m的“文件名”字段中輸入 main。
單擊“完成”。
將在向導中指定的目錄下創建 main.c 文件, 並將其添加到“源文件”文件夾中。您可以在此文件夾中添加任何類型的文件, 而不僅僅是源文件。
在項目中添加新文件
您可以在項目中添加新文件。
右 鍵單擊“源文件”文件夾,然後選擇“新建”。
在子菜單中選 擇“主 C 文件”。
在“新建文件”對話框的“名稱和位 置”頁中,在“文件名”字段中輸入 main。
單擊 “完成”。
main.c 文件被創建到磁盤上,位於向導指定的目錄下,並被 添加到“源文件”文件夾中。您可以在此文件夾中添加任何類型的文件,而不僅 僅是源文件。
在項目中添加更多新文件
右鍵單擊“頭文件”文件夾, 然後選擇“新建”。
在子菜單中選擇“C 頭文件”。
在“新建文件”對話框的“名稱和位置”頁中,在“文件名 ”字段中輸入 file。
單擊“完成”。
該文件被創建到磁盤 上,位於向導指定的目錄下,並被添加到“頭文件”文件夾中。
在項目中 添加現有文件
您可以使用兩種方法在項目中添加現有文件:
右鍵單擊“源文 件”文件夾,然後選擇“添加現有項”。您可以通過“選擇項” 對話框定位到磁盤上的現有文件,並將其添加到項目中。
右鍵單擊“源文件 ”文件夾,然後選擇“從文件夾中添加現有項”。使用“添加文件 ”對話框添加包含現有文件的文件夾。
請不要使用“新建文件夾” 項來添加現有項。“名稱和位置”面板會提示您該文件已存在。
設置項目 屬性
創建項目時具有兩項配置:“Debug”(調試)和“Release” (發布)。配置表示項目存儲當前設置的方式。使用“Debug”配置可以生成包含 調試信息的應用程序版本。使用“Release” 配置可以生成優化的版本。
“項目屬性”對話框包含了項目的生成和配置信息。要打開“項目 屬性”對話框:
右鍵單擊 Application_1 項目的項目節點,然後選擇“ 屬性”。
在 “項目屬性”對話框中,您可以修改編譯器的設置和其他配置設置,方法是選擇 左側面板中的某個節點,然後在右側面板中修改相應的屬性。請選擇一些節點和屬性值,並 觀察可以設置的屬性。您將為當前選擇的配置設置屬性。
管理配置
在“項目 屬性”窗口中更改的屬性將存儲在當前配置的 makefile 中。您可以編輯缺省配置,或 者創建新的配置。要創建一個新的配置:
在“項目屬性”對話框中,單擊 “管理配置”按鈕。
在“配置”對話框中,選擇一個最符合您 的需求的配置。對於本例,請選擇“Release”配置並單擊“復制”按 鈕。然後單擊“重命名”。
在“重命名”對話框中,將此配置 重命名為“PerformanceRelease”。單擊“確定”。
在 “配置”對話框中,單擊“確定”。
請注意,在“項目 屬性”對話框的“配置”下拉列表中,“PerformanceRelease” 配置已被選中。
在左側面板中,依次展開“C/C++”節點和“GNU C 編譯器”節點,然後選擇“常規”節點。
在右側面板的屬性單中, 將“開發模式”由“Release”更改為 “PerformanceRelease”。單擊“確定”。
因為您已經創建了 一個新的配置,它將使用一組不同的選項來編譯應用程序。
設置源文件屬性
為 C 或 C++ 項目設置了項目屬性後,相關屬性將應用於項目中的所有文件。您也可以為特定的文 件設置某些屬性。
右鍵單擊 main.c 源文件,然後選擇“屬性”。對於單 個文件,您可以覆蓋項目編譯器的設置和其他屬性。您還可以在特定的配置中排除某些文件 的生成。
取消“項目屬性”對話框。
設置主項目
當您在 “項目”窗口中右鍵單擊項目節點時,將會顯示一個可在此選定項目上執行的操 作的彈出菜單。如果您同時打開了多個項目,項目的彈出菜單只針對於正在操作的項目。但 是,菜單欄和工具欄上的項目相關操作又是怎樣呢?
菜單欄和工具欄上的大多數項目 相關操作都只針對於主項目。主項目節點在“項目”窗口中以粗體顯示。
要在 IDE 中更改主項目,請執行以下操作:
右鍵單擊所需的項目節點,然後選擇 “設置為主項目”。該項目將成為 IDE 的主項目,並且菜單欄和工具欄中的操作 將與其關聯。
生成項目
要生成項目:
選擇“生成 ”>“生成主項目”即可生成項目。生成的輸出顯示在“輸出 ”中。
在主工具欄的配置下拉列表中,將配置由“Debug”切換為 “PerformanceRelease”。現在將使用“PerformanceRelease”配置 來生成項目。
選擇“生成”>“生成主項目”即可生成項目 。生成的輸出顯示在“輸出”中。
通過選擇“生成”菜單中的 操作,您可以生成、清理或清理並生成項目。項目會根據不同的配置分別保留目標文件和可 執行文件,所以不必擔心文件在多個配置中發生混淆。
編譯單個文件
要編譯單個 源文件:
右鍵單擊 main.c 文件,然後選擇“編譯文件”。僅該文件被編 譯。
注意:對於根據現有代碼創建的 C/C++ 項目類型,不支持編譯單個文件。
運行項目
該程序輸出命令行參數。在運行程序之前,我們將在當前配置中設置一 些參數,然後再運行程序。
要創建 Args 項目,設置參數並運行項目:
選擇 “文件”>“新建項目”。
在項目向導中,依次展開 “樣例”類別和“C/C++ 開發”子類別。
選擇 “C/C++”子類別,然後選擇 Args 項目。單擊“下一步”,然後單擊 “完成”。
右鍵單擊 Args_1 項目節點,然後選擇“生成項目 ”。將生成項目。
右鍵單擊 Args_1 項目節點,然後選擇“屬性” 。
在“項目屬性”對話框中,選擇“運行”節點。
在 “參數”文本字段中,輸入“1111 2222 3333”。單擊“確定 ”。
選擇 “運行”>“運行主項目”。將運行應用程序,並在“輸出 ”窗口中顯示這些參數。
創建基於現有代碼的 C/C++ 項目
對於基於現有代 碼的 C/C++ 項目,IDE 依靠現有 makefile 來提供編譯和運行應用程序的指令。
創 建基於現有代碼的項目
從 http://sourceforge.net/projects/loki-lib 下載 loki- 0.1.6 庫。
將 loki-0.1.6 解壓縮到一個目錄中。
選擇“文件 ”>“新建項目”以打開“新建項目”向導。
選擇 “C/C++ 開發”類別。
選擇“基於現有代碼的 C/C++ 項目” ,單擊“下一步”。
在“生成工具”頁中,單擊 Makefile 字 段的“浏覽”按鈕。
在“選擇 Makefile”對話框中,導航至 保存 loki-0.1.6 的目錄。選擇 Makefile。單擊“選擇”。
單擊“ 下一步”。
在 “生成操作”頁上,“工作目錄”、“生成命令”和 “清理命令”文本字段將被自動填充。在“生成結果”字段中,鍵入 makefile 用來保存庫 libloki.a(由 loki-0.1.6 源代碼生成)的完整路徑。單擊“ 下一步”。
在 “源文件”頁中,將自動列出項目源文件的文件夾的路徑。您可以通過單擊 “添加”並使用“源文件的文件夾”對話框來指定其他文件夾。
在“代碼幫助配置”頁上,單擊“下一步”。
在 “項目名稱和位置”頁的“項目名稱”字段中,輸入 Loki。其他字段 使用缺省設置。單擊“完成”。
將創建項 目並在“項目”窗口中打開。您已經創建了一個對現有代碼進行了簡單包裝的項 目。
生成和重新生成項目
要生成項目:
右鍵單擊項目的項目節點,然後選 擇“生成項目”。
要重新生成項目:
右鍵單擊項目的項目節點, 然後選擇“清理並生成項目”。
編輯源文件
C/C++ 開發包提供了高級 的編輯功能來幫助您查看和修改源代碼。我們以 Quote 項目為例來浏覽這些功能:
選擇“文件”>“新建項目”。
在項目向導中,依次展開 “樣例”類別和“C/C++”子類別。
選擇“應用程序 ”子類別,然後選擇 Quote 項目。單擊“下一步”,然後單擊“完成 ”。
折疊 C 和 C++ 文件的代碼塊
對於某些類型的文件,可以使用代碼折疊 功能來折疊代碼塊,這樣源代碼編輯器只顯示代碼塊的首行。
在 Quote_1 應用程序 項目中,打開“源文件”文件夾,然後雙擊 cpu.cc 文件以在源代碼編輯器中打 開。
單擊位於左旁注的折疊圖標(帶有減號的小方塊)折疊其中某個方法的代碼。
將鼠標懸停在位於被折疊右側的 {...} 符號上,可以顯示此代碼塊的內容。
使用類窗口
利用“類視圖”,您可以查看項目中所有的類、每個類 的成員和字段。
選擇“窗口”>“類”以打開顯示 Quote_1 項目的類窗口。
展開 Quote_1 節點。將會列出該項目中所有的類。
展開 Customer 類。
雙擊 customerName 變量以打開 customer.h 頭文件。
使用導航窗口
導航窗口為當前選 擇的文件提供一個緊湊的視圖,可簡化在該文件的不同部分的導航。
要在導航窗口中 顯示源文件:
在編輯器窗口、項目窗口或者文件窗口選擇文件。
要導航顯示 在導航窗口中的文件的某個元素:
雙擊導航窗口中的此元素,編輯器窗口中的鼠標就 會移動到此元素。
使用超鏈接
超級鏈接導航允許您從類、方法、變量或常量的調 用位置跳至其聲明位置,或從其聲明位置跳至其定義位置。
在 Quote_1 項目的 cpu.cc 文件中,右鍵單擊源代碼編輯器的左旁注,然後選擇“顯示行號”。
按住 Ctrl 鍵,將鼠標懸停在第 26 行上。ComputeSupportMetric 函數將高亮顯示 。
單擊此超級鏈接,編輯器將跳至該函數的定義位置。
按住 Ctrl 鍵,將鼠標懸停在其定義上,然後單擊超鏈接。編輯器將跳至該函數在 cpu.h 頭文件 中的聲明位置。
單擊編輯 器工具欄中的左箭頭按鈕,編輯器將跳回至定義位置。
使用包含層次
“包含 層次”窗口允許您檢視在某個源文件中直接或間接包含的所有頭文件和源文件,或者某 個頭文件中直接或間接包含的所有源文件和頭文件
在源代碼編輯器中打開 Quote_1 項目中的 module.cc 文件。
右鍵單擊文件中的 #include "module.h" 行 ,然後選擇“查看包含層次”。
缺省情況下,“包含”窗口將 顯示直接包含此頭文件的文件列表。單擊窗口下方最右邊的按鈕以將顯示切換為樹形圖。可 展開樹形圖中的節點以查看所有包含此頭文件的所有源文件。
使用類型 層次
“類型層次”窗口允許您檢視某個類的所有子類型或超類型。
要 打開“類型層次”窗口,請右鍵單擊類聲明或者某個源文件或頭文件中的類引用 。要在 IDE 的一個窗口中顯示類層次,請選擇“查看類型層次”。要在一個彈出 窗口中顯示類層次,請選擇“檢視類型層次”。缺省顯示該類的所有子類型的樹 形圖。
使用代碼完成
IDE 具有動態 C 和 C++ 代碼完成功能,使您只需鍵入一個或幾 個字符,就會看到一個可用來完成表達式的所有可能的類、方法和變量等的列表。
打 開 Quote_1 項目中的 quote.cc 文件,右鍵單擊源代碼編輯器的左旁注,然後選擇“ 顯示行號”。
在 quote.cc 文件的第 19 行上,輸入大寫字母 C,然後按 Ctrl-空格。代碼完成框將顯示一個列表,其中包含 Customer 類。
選擇 Customer 類,然後按 Enter 鍵。
通過鍵入 "andrew;" 來新建一個 Customer 類的實例。在下一行中,輸入字母 a,然後按 Ctrl-空格。代碼完成框將顯示一個 以字母 a 開頭的列表以供選擇,例如方法參數、類字段和全局名稱等,這些都可以從當前上 下文訪問。
雙擊 andrew 選項以表示接受,並在其後鍵入一個句點。將自動提供給您一個 Customer 類的公共 方法和字段的列表。
刪除您添 加的代碼。
使用代碼模板
源代碼編輯器包含一組常用 C 和 C++ 代碼片段的可定 制代碼模板。通過鍵入縮寫並按空格鍵,您可以生成完整的代碼片段。例如,在 Loki 項目 的 Singleton.cpp 文件中:
鍵入 uns 並按空格鍵,uns 將展開為 unsigned。
鍵入 iff 並按空格鍵,iff 將展開為 if () {}。
鍵入 ife 並按空格鍵, ife 將展開為 if () {} else {}。
鍵入 fori 並按空格鍵,fori 將展開為 for (int i = 0; i < ; i++) {}。
使用配對完成功能
編輯 C 和 C++ 源文件時, 源代碼編輯器將對成對字符(如方括號、圓括號和引號)進行“智能”匹配。當 鍵入其中一個字符時,源代碼編輯器會自動插入結束字符。
在 Quote_1 項目中,將 光標放在 module.cc 文件第 92 行的 { 後面,然後按 Enter 鍵以開始新行。
鍵入 enum state {,然後按 Enter 鍵。右花括號和分號將自動添加,並且光標將位於括號之間的 行。
鍵入 invalid=0, success=1 以完成枚舉。
在枚舉的右花括號 }; 後面 一行,鍵入 if (。右圓括號將自動添加,並且光標位於圓括號之間。
鍵入 v==null 。然後在右圓括號後面鍵入 { 並換行。右花括號將自動添加。
創建斷點
您可以隨 時在代碼中創建和處理斷點。
創建和刪除行斷點
在 Quote_1 項目中,打開 quote.cc 文件。
在源代碼編譯器窗口中第 151 行(response = readChar ("Enter disk module type: (S for single disks, R for RAID; Q - exit)", 'S');)旁的左旁注處單擊鼠標左鍵,這將設置一個行斷點。該行將以紅色高亮顯示 ,以指示在此設置了斷點。
您可以通過單擊左旁注中的圖標來刪除斷點。
選 擇“窗口”>“調試”>“斷點”以打開“斷點 ”窗口。此窗口將列出您設置的行斷點。
創建函數斷點
選擇“運行 ”>“新建斷點”(Ctrl+Shift+f8)以打開“新建斷點”對 話框。
在對話框中,請確保將“調試器”下拉列表設置為“C, C++ Fortran (gdb)”。
在“斷點類型”下拉列表中,將類型設置為 “函數”。
在“函數名”文本字段中鍵入函數名稱 Customer::GetDiscount。單擊“確定”。
您的函數 斷點已經設置,並且已被添加到“斷點”窗口中的列表。
調試項目
當 您啟動一個調試會話時,IDE 將啟動 gdb 調試器,然後在調試器內運行應用程序。IDE 會自 動打開調試器窗口,並將調試器的輸出打印到“輸出”窗口。
啟動調試會 話
右鍵單擊該項目節點,然後選擇“調試項目”,這將啟動 Quote_1 項目的 調試會話。調試器啟動並運行應用程序,並打開“局部變量”、“監視 ”和“調用棧”窗口。
選擇“窗口”>“調試 ”>“會話”以打開“會話”窗口。此窗口中將顯示調試會話 。
檢查應用程序的狀態
Quote_1 應用程序將提示您在外部 I/O 窗口中進行輸入。
在“Enter customer name:”提示後面,輸入一個客戶名稱。
應 用程序將在您先前設置的函數斷點處停止。選擇“窗口”>“調試 ”>“斷點”以打開“斷點”窗口。窗口中列出了您先前設置 的兩個斷點。函數斷點以粗體顯示。
在 customer.cc 文件中,GetDiscount 函數第一行的斷點圖標上將出現綠色的程序計數器錯誤 。
單擊“調用棧”選項卡。調用棧顯示三個棧幀。
單擊 “局部變量”選項卡,請注意它將顯示一個變量。單擊展開圖標(帶有加號的小 方塊)以展開其結構。
單擊 “繼續”按鈕。GetDiscount 函數將執行,並將客戶折扣信息打印到外部 I/O 窗 口。然後提示您進行輸入。
請根據提示輸入響應信息。程序將在您先前設置的行斷點 處停止。單擊“局部變量”選項卡,請注意它將顯示一個很長的局部變量列表。
單擊“調用棧”選項卡,請注意調用棧中只剩下兩個框架。
單 擊“繼續”按鈕並繼續根據“外部 I/O”窗口的提示輸入響應信息, 直到程序運行完畢。當您輸入 Q 退出程序時,外部 I/O 窗口將關閉並結束調試會話。要在 程序執行完畢之前結束調試會話,您可以在“會話”選項卡中右鍵單擊該會話, 然後選擇“結束”,或者選擇“運行”>“結束調試器會話 ”。