NetBeans C/C++ Development Pack 5.5.1 update 1 快速入门指南
下面这个简明教程将为您介绍一些使用 NetBeans IDE 5.5.1(或 NetBeans IDE 5.5)和 NetBeans C/C++ Development Pack 5.5.1 update 1 开发 C 或 C++ 应用程序的基本步骤。
目录
要求
要开发 C 或 C++ 程序,您必须安装以下软件:
有关下载并安装所需软件的详细信息,请参见 NetBeans IDE 安装说明和 NetBeans C/C++ Development Pack 5.5.1 update 1 安装和设置说明。
样例项目
您希望通过一些项目来体验 NetBeans C/C++ Development Pack 5.5.1 update 1 的功能吗?请在 IDE 中选择“文件”>“新建项目”,然后依次打开“样例”类别、“C/C++ 开发”子类别和 "C/C++" 子类别。IDE 提供了一些 C 和 C++ 样例项目来帮助您熟悉 IDE。
创建 C 和 C++ 项目
利用 NetBeans C/C++ Development Pack,您可以创建 C 和 C++ 应用程序项目及库项目,同时生成 makefile;您还可以基于现有代码来创建 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 文件”类别和“主 C 文件”文件类型。单击“下一步”。
- 在“名称和位置”页的“文件名”字段中输入 main。
- 单击“完成”。
将在向导中指定的目录下创建 main.c 文件,并将其添加到“源文件”文件夹中。您可以在此文件夹中添加任何类型的文件,而不仅仅是源文件。
在项目中添加更多新文件
- 右键单击“头文件”文件夹,然后选择“新建”>“文件/文件夹”。
-
在“新建文件”对话框的“选择文件类型”页中,依次选择“C 文件”类别和“C 头文件”文件类型。单击“下一步”。
- 在“名称和位置”页的“文件名”字段中输入 file。
- 单击“完成”。
将在向导中指定的目录下创建该文件,并将其添加到“头文件”文件夹中。
在项目中添加现有文件
您可以使用两种方法在项目中添加现有文件:
-
右键单击“源文件”文件夹,然后选择“添加现有项”。您可以通过“选择项”对话框定位到磁盘上的现有文件,并将其添加到项目中。
- 右键单击“源文件”文件夹,然后选择“从文件夹中添加现有项”。使用“添加文件”对话框添加包含现有文件的文件夹。
请不要使用“新建”>“文件/文件夹”来添加现有项,因为“名称和位置”面板会提示您该文件已存在。
设置项目属性
创建项目时,每个项目都具有两项配置:"Debug" 和 "Release"。配置是用来表示项目存储当前设置的方式。使用 "Debug" 配置可以生成包含调试信息的应用程序版本。使用 "Release" 配置可以生成一个优化的版本。
“项目属性”对话框包含了项目的生成和配置信息。要打开“项目属性”对话框,请执行以下操作:
-
右键单击 Application_1 项目的项目节点,然后选择“属性”。

在“项目属性”对话框中,您可以修改编译器的设置和其他配置设置。方法是:选择左侧面板中的某个节点,然后在右侧面板中修改相应的属性。请选择一些节点和属性值,并观察可以设置的属性。您将为当前选择的配置设置属性。
管理配置
在“项目属性”窗口中更改的属性将存储在当前配置的 makefile 中。您可以编辑缺省配置,或者创建新的配置。要创建一个新的配置,请执行以下操作:
-
在“项目属性”对话框中,单击“管理配置”按钮。
-
在“配置”对话框中,选择一个最希望使用的配置。对于本示例,请选择 "Release" 配置并单击“复制”按钮。然后单击“重命名”。
-
在“重命名”对话框中,将此配置重命名为 "PerformanceRelease"。单击“确定”。
- 在“配置”对话框中,单击“确定”。
-
请注意:在“项目属性”对话框的“配置”下拉列表中,将会选中 "PerformanceRelease" 配置。
-
在左侧面板中,依次展开 "C/C++" 节点和“GNU C 编译器”节点,然后选择“常规”节点。
-
在右侧面板的属性表单中,将“开发模式”由 "Release" 更改为 "Performance Release"。单击“确定”。
因为您已经创建了一个新的配置,所以该配置将使用一组不同的选项来编译应用程序。
设置源文件属性
为 C 或 C++ 项目设置了项目属性后,相关属性将应用于项目中的所有文件。您也可以为特定的文件设置属性。
-
右键单击 main.c 源文件,然后选择“属性”。对于单个文件,为其设置的编译器配置及属性将覆盖项目编译器的设置和其他属性。您也可以在特定的配置中进行设置以排除生成某些文件。
- 取消“项目属性”对话框。
设置主项目
当您在“项目”窗口中右键单击某个项目节点时,将会显示一个可在此选定项目上执行的各类操作的弹出式菜单。如果您同时打开了多个项目,则弹出式菜单上显示的可执行操作只针对于所选择的项目节点。但是,菜单栏和工具栏又是如何体现与项目相关的操作呢?
在菜单栏和工具栏上,大多数与项目相关的操作都只针对于主项目。主项目节点在“项目”窗口中以粗体显示。
要在 IDE 中更改主项目,请执行以下操作:
-
右键单击某个项目节点,然后选择“设置为主项目”。该项目将成为 IDE 的主项目,并且菜单栏和工具栏中的操作将与其关联。
生成项目
要生成项目,请执行以下操作:
-
选择“生成”>“生成主项目”,即可生成项目。“输出”窗口将显示与生成有关的输出信息。
-
在主工具栏的配置下拉列表中,将配置由 "Debug" 切换到 "PerformanceRelease"。现在将使用 "PerformanceRelease" 配置来生成项目。
-
选择“生成”>“生成主项目”,即可生成项目。“输出”窗口将显示与生成有关的输出信息。
通过选择“生成”菜单中的相应操作,您可以清理、生成或清理并生成项目。此外,项目还可以根据不同的配置分别保留目标文件和可执行文件,所以您不必担心文件在多个配置中发生混淆。
编译单个文件
要编译单个的源文件,请执行以下操作:
-
右键单击 main.c 文件,然后选择“编译文件”。其结果是仅编译该文件。
请注意:对于根据现有代码创建的 C/C++ 项目类型,IDE 不支持编译单个文件。
运行项目
Args 程序是一个用于输出命令行参数的程序。在运行程序之前,让我们在当前配置中设置一些参数,然后再运行程序。
要创建 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++ Development Pack 提供了高级的编辑功能,这些功能可以帮助您查看和修改源代码。为了说明这些功能,我们将以 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 头文件的声明位置。
- 单击编辑器工具栏中的后退按钮,编辑器将跳回至函数的定义位置。
使用代码完成功能
IDE 具有动态 C 和 C++ 代码完成功能,您只需键入一个或几个字符,就会看到一个可用来完成表达式的所有类、方法和变量等的列表。
- 打开 Quote_1 项目中的 quote.cc 文件,右键单击源代码编辑器的左旁注,然后选择“显示行号”。
- 在 quote.cc 文件的第 19 行上,输入大写字母 C 然后按 Ctrl-空格组合键。代码完成框将显示一个列表,其中包含 Customer 类。
- 选择 Customer 类,然后按 Enter 键。
- 通过键入 "andrew;" 来创建一个新的 Customer 类的实例。在下一行中,输入字母 a,然后按 Ctrl-空格组合键。代码完成框将显示一个以字母 a 开头的列表供您选择,例如方法参数、类字段以及全局名称等,这些都是可以通过当前上下文访问的内容。
- 选择 Customer 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 窗口将关闭并结束调试会话。要在程序执行完毕之前结束调试会话,您可以在“会话”标签中右键单击该会话,然后选择“结束”,或者选择“运行”>“结束调试器会话”。