要獲取更多有關在 NetBeans IDE 中使用 C/C++ 應用程序的信息,請參見 NetBeans 網站上的 C/C++ 應用程序學習課程頁。
教程需求
在繼續前,請確保您重新檢查了本節中的需求。
先決條件
本教程假設您已經有一些 C 和 C++ 的編程經驗。
本教程所需的軟件
在開始前,您需要安裝 NetBeans 6.0。C/C++ 下載選項包括 NetBeans IDE 6.0 和 C/C++ 支持。
問題是什麼?
IDE 的一項職責就是代碼模型的構建。代碼模性對 IDE 功能很重要,例如:
代碼完成
超鏈接
導航
為了正確生成模型,IDE 需要關於項目的信息,例如:
編譯的文件
使用哪個編譯器
用戶包含路徑和每個編譯的文件中的宏
使用的頭文件
沒有這些信息,IDE 無法生成恰當的模型,這將造成 IDE 的功能工作出錯。
當然,所有這些信息都包含在 makefile 裡。問題是由於以下原因,難以判斷出必要的信息:
復雜的開源項目通常有一個層次文件結構,主 makefile 引用了子目錄下的 makefile。
Makefile 常常使用外殼腳本命令。
有時候 make 實用工具的行為取決於它前面的操作;例如,基於前一步中所創建的文件的存在性。
Netbeans IDE 提供了另一種方法來獲取模型的必要信息,它基於使用下列文件中的編譯器注釋或調試信息:
對象文件
靜態或動態庫
可執行文件
如果工作的?
讓我們檢查在為某個開源應用程序新建 Netbeans IDE 項目時的典型情況。
這種情況始於開始下載某個開源項目。我們使用 MySQL 項目。以下指令都假設我們已經載入了該開源項目並安裝了必要的軟件。現在我們來配置這個項目。
要保證編譯器注釋的完整,我們提供附加的編譯標志:
./configure CFLAGS="-g3 -gdwarf-2" CXXFLAGS="-g3 -gdwarf-2"
這些標志有什麼用?
我相信 -g 標志廣為人知。該標志告訴編譯器在對象文件中包括調試信息。該標志的 -g3 變體使調試信息更完整。該標志使得能夠獲取用戶宏的信息。
-gdwarf-2 標志告訴編譯器使用版本 2 的 DWARF 調試信息格式。
我們用 make 命令生成應用程序。基本來說,我們必須確保應用程序用以上提到的標志來編譯。
怎樣告訴 make 實用工具去使用必要的標志取決於特定的開源項目。有時候有必要導出環境變量:
export CFLAGS="-g3 -gdwarf-2"
export CXXFLAGS="-g3 -gdwarf-2"
對於不靈活的項目,有必要查看 makefile 的內容,以便了解怎樣提供標志。
現在我們的開源項目已經成功生成。所以能夠創建一個 NetBeans IDE 項目。
啟動 NetBeans IDE。
通過選擇“文件”>“新建項目”>“C/C++”>“基於現有代碼的 C/C++ 項目”來新建一個項目。
讓我們來看看“新建項目”向導的步驟。
在第二步的“生成工具”頁,我們必須指明開源項目的主 makefile 的位置。指向正確的 makefile,才能從 IDE 生成應用程序。
第三步值得額外注意。在“生成操作”頁,您可以指定應用程序的可執行文件(生成結果)的位置,這使得能夠從 IDE 中啟動應用程序。您可以稍後填寫該字段。
在第五步的“代碼幫助配置”頁,向導會根據編譯器注釋,建議自動建立 IDE 項目。讓我們看看這裡面發生了什麼。如果在第三步,您指定了生成結果的位置,向導就使用來自生成結果的編譯器注釋。否則,向導將使用來自開源項目文件夾中的所有對象文件、庫和可執行文件中的編譯器注釋。向導使用從這些文件中獲取的信息來建立 IDE 項目。
配置級別告訴向導怎樣統合發現的用戶包含目錄和宏。對於每個編譯的文件,編譯器注釋都包含用戶包含目錄和宏。但是為了 IDE 項目在以後維護的方便,也可以設置另外的配置級別。例如,如果您選擇項目級別配置,那麼所有的用戶包含目錄和宏將統合到項目屬性中。
在最後一步,選擇 IDE 項目的位置。缺省情況下,IDE 建議把項目放到您的主目錄下,這樣就能完全分離 IDE 項目和開源項目。由於版本控制系統,有時候這種分離很有用。但您完全可以使用開源項目本身中的一個文件夾。IDE 把關於 IDE 項目的所有信息放到一個叫做 nbproject. 的特殊文件夾裡。
在 NetBeans IDE 項目創建的結尾,向導將在模型中只包括已編譯的文件或被已編譯的文件包含的文件。未使用的文件將被標為從代碼幫助中排除。每個編譯的文件都有正確的用戶包含路徑和宏。
最後是幾個問題的解答
怎樣編輯用戶包含目錄和宏?
在項目的屬性、邏輯文件夾或文件(“屬性”>“代碼幫助”>“C 編譯器”>“常規”,或者“屬性”>“代碼幫助”>“C++ 編譯器”>“常規”)中。值得注意的是,屬性可以從項目和文件所在的邏輯文件夾繼承。文件具有 C 編譯器或者 C++ 編譯器的屬性,這取決於文件的擴展名。項目和文件夾具有 C 編譯器和 C++ 編譯器的屬性。
怎樣檢測出 IDE 項目的配置是錯的?
通常此類 IDE 項目有未解析的包含目錄。這些都顯示在項目窗口中,並在項目節點的右上角用一個藍背景的小問號標記。您可以查看未解析的引用目錄列表,方法是右鍵單擊項目節點,然後選擇“代碼幫助”>“顯示失敗的 #include 目錄”。
可以配置一個現已存在的 IDE 項目嗎?
可以。首先,用上面提到的必要標志生成開源項目。然後右鍵單擊項目節點,選擇“代碼幫助”>“配置代碼幫助”。“配置代碼幫助”向導以兩種模式工作:簡易和高級。
簡易模式重復新建項目向導的操作。
高級模式讓您選擇獲取編譯器注釋的不同方法,並具有一個分析結果的預覽。
有可能讓一個 IDE 項目具備不同平台/設備相關的配置嗎?
可以。您可以在項目屬性中管理配置。對每個配置,您都可以啟動“配置代碼幫助”向導。在向導中指定不同平台/設備的生成結果。向導將設置當前的活動配置。