7 Working in the Project Explorer
7.1 Introduction
Project Explorer 是用于处理项目的图形界面。您可以使用它来创建、打开、关闭、修改和构建项目。您还可以使用它来添加或导入应用程序代码、导入或自定义构建规范以及访问您的版本控制系统。各种过滤器、排序机制和查看选项有助于提高项目管理和导航的效率。可以使用 Project Explorer 右上角的箭头打开这些选项的下拉菜单。
注意:对于 VxWorks 6.5.3,本章描述的原则适用。但是,有些示例图可能不适用于 VxWorks 6.5.3 系统。有关与 VxWorks 6.5.3 系统相关的示例,请参阅 Wind River Workbench By Example, VxWorks 653 Version。
7.2 Adding Resources and Files to Projects
本节向您展示如何将资源文件添加到现有项目。创建项目后,您拥有给定项目类型的基础架构,但没有实际的应用程序代码。如果您已经有源代码文件或其他资源,例如 CVS 项目、可执行文件和其他 Workbench 项目,您可以将它们导入到项目中。
有关更多信息,请参阅以下内容:
- 有关创建项目的一般信息,请参见 3. Projects Overview。
- 有关详细资料,请参阅本指南的 Part II. Projects,以及特定于平台的 Wind River Workbench By Example 指南。
Importing Resources
您可以将各种类型的现有资源导入到您的项目中。
To import resources into a project, do the following:
1. 选择 File > Import。
2. 有关 Import 对话框中条目的详细信息,请打开它并按主机的帮助键。
注意:如果 Workbench 在导入资源时遇到问题(例如,项目已经包含同名文件),它会返回错误。
如果单击 OK,则 Import 向导会重新显示所有原始设置。
这使您有机会仅修复导致问题的项目,而不必在向导中重新输入所有选择。
如果您不想现在修复此问题并立即导入资源,请单击 Cancel。
Adding New Files to Projects
本节介绍如何将文件添加到指定文件夹。
To add a new file to a project, do the following:
1. 选择 File > New > File。
2. 输入或选择父文件夹,并提供文件名。如果已存在同名文件,向导会警告您,以便您选择不同的名称。
3. (可选):有关 Advanced 按钮的说明,请按主机的帮助键,然后选择 New File 向导。请特别注意 Related concepts 下的Linked resources 链接。
Adding and Removing Contents Within the Project Explorer Using Drag and Drop
本节将向您展示如何在project Explorer中使用拖拽来添加和删除项目或者构建目标内容。项目层次结构定义并反映了项目之间的内部依赖关系,因此也定义了它们的构建顺序。同样,修改构建目标内容也会影响您启动和调试程序的能力。
To drag and drop contents within the Project Explorer, do the following:
1. 在 Project Explorer 中,展开您要修改的项目,使文件夹及其内容可见。
2. 选择要移动的文件或文件夹,按住鼠标按钮,然后将其拖动到新位置。
3. 当光标位于你想要的准确位置时,松开鼠标按钮。你将会看到该文件或文件夹出现在新位置,并且不再出现在其原始位置。
7.3 Opening and Closing Projects, Scoping and Navigation
有许多策略和 Workbench 功能可用于管理工作区中的项目。无论您是在处理与单个软件系统相关还是处理与多个不相关的软件系统的多个项目,您都可以使用这些工具。
Opening Projects
您可以通过多种方式打开项目:
- 在现有窗口中打开项目
- 在新窗口中打开项目
有关打开 Workbench 窗口的基本信息,请参阅 Workbench Basics, p. 12。
Opening a Project in an Existing Window
您可以打开一个项目,以便其内容出现在现有的 Workbench 窗口中。
To open a project in an existing window, do the following:
1. 在项目资源管理器中,选择项目。
2. 选择 Project > Open Project。
3. (可选):右键单击项目并使用上下文菜单中的命令。
Opening a Project in a New Window
如果您希望在软件系统(或其他上下文)之间进行短时间的来回切换,并且不希望更改当前的打开编辑器配置和其他视图的布局,则可以在新窗口中打开其他软件系统的根项目。这将在新窗口中打开项目,从而保持当前工作台布局的完整性。
To open a project in a new window, do the following:
在Project Explorer中,右键单击项目并选择 Open in New Window。
Closing Projects
如果您希望在不同的根项目下工作一段时间,您可以考虑关闭项目。关闭项目会有更多的内存。
当您关闭项目时,以下条件适用:
- 图标变为关闭状态(默认为灰色),树折叠。
- 在编辑器中打开的所有项目成员文件都将关闭。
- 专门链接到已关闭项目的所有子项目也已经关闭。但是,只要父项目仍处于打开状态,在多个项目之间共享的子项目就会保持打开状态,但可以随时显式关闭。
- 通常,已关闭的项目将会被排除在所有操作例如符号信息查询以及工作区或项目结构构建之外。
- 无法操纵已关闭的项目。您不能添加、删除、移动或重命名资源,也不能修改属性。唯一可能的修改是删除项目本身。
To close a project, do the following:
1. 在资源管理器中,选择要删除的项目。
2. 选择 Project > Close Project。
当您关闭您的根项目时,您只会看到您正在处理的活动项目的符号和资源。
Using Working Sets
您可以使用工作集来设置各种查询的范围。例如,您可以为每个不同的软件系统或任何项目群创建工作集,然后使用 Project Explorer 右上角的下拉菜单来管理显示出来的 Project Explorer 内容的范围(和其他查询请求)。
To create a working set, do the following:
1. 选择 Select Working Set。
2. 点击 New,单击新建,然后指定要创建的工作集的类型。 例如,选择 Resource。
3. 单击 Next,然后选择一个软件系统根项目并给工作集命名。
4. 单击 Finish,您的新工作集出现在可用工作集的 Select Working Set 列表中。
第一次选择工作集后,它会出现在 Project Explorer 的下拉菜单中,您可以从那里直接访问它。当前选择的工作集会用一个点来标记。
Using the Navigate Menu
对于日常工作,通常不需要查看项目资源管理器中显示的软件系统的内容。 但是,您可能需要在系统内或系统之间导航。
To navigate throughout a system, do the following:
1. 要导航到文件,请选择 Navigate > Open Resource。
2. 要直接跳转到符号定义,请选择 Navigate > Open Element。
7.4 Moving, Copying, and Deleting Resources and Nodes
您在项目资源管理器中看到的资源通常以其逻辑配置 (而不是物理配置) 显示(see 3.4 Project Types, p. 28)。根据您正在使用的资源或逻辑元素的类型,可能会发生不同的事情。以下部分总结了资源类型和逻辑节点的含义。
有关详细信息,请参阅 Structuring Projects, p. 34。
Understanding Resources and Logical Nodes
资源是指在 Workbench 中存在的文件、文件夹和项目等零部件。
- Files——等同于您在文件系统中看到的文件。
- Folders——相当于文件系统上的目录。在 Workbench 中,文件夹包含在项目或其他文件夹中。文件夹可以包含文件和其他文件夹。
- Projects——包含文件夹和文件。项目用于构建、版本管理、共享和资源组织。与文件夹一样,项目映射到文件系统中的目录。创建项目时,您可以在文件系统中为其指定一个位置。
当打开项目时,可以更改项目的结构,您将看到内容。如果项目已关闭,您将无法查看或操作其内容。关于关闭项目的讨论见 Closing Projects,p. 74。
逻辑节点是 Project Explorer 中提供结构信息或者是为项目特定工具提供访问点的节点的统称。
- Subprojects——项目是根位置的资源。 然而,引用超级项目的项目是一个逻辑实体;它仅供参考,不一定(甚至通常)不是文件系统中超级项目目录的物理子目录。
- Build Target Nodes——这些是纯粹的逻辑节点,用于将项目的构建输出与项目相关联。
- Tool Access Nodes——这些允许访问用于特定项目的配置工具。
例如,VxWorks ROMFS 文件系统项目有一个节点,它打开一个工具,用于将主机端项目内容映射到目标文件系统内容。VxWorks Image Projects 有一个节点,可以打开内核配置编辑器来配置 VxWorks 内核。
Manipulating Files
单个文件,例如源代码文件,可以被复制,移动,或删除。这些是物理层面的操作。例如,如果在将源文件从一个项目拖放到另一个项目时按住 CTRL,您将创建一个物理副本,并且编辑一个副本不会影响另一个副本。
7.4.1 Manipulating Project Nodes
尽管复制,移动或删除项目节点是使用与普通文件相同的命令进行的,但结果却有所不同,因为项目文件夹是半逻辑实体。也就是说,一个项目在根的位置是一个正常的资源。然而,作为子节点引用的项目是一个逻辑实体; 它仅供参考,并非物理实例。如果要将一个项目转换为一个或多个其他项目的子项目,则会从该子项目插入对超级项目的引用。这意味着如果您修改子项目节点的一个实例的属性,所有其他实例(实际上只是引用)也会被修改。
例如,一个这样的属性是项目名称。如果您在一个上下文中重命名项目节点,那么它也将在所有其他引用了它的上下文中被重命名。
有关更多信息,请参见 Structuring Projects, p. 34。
To make a project into a subproject, do the following:
1. 右键单击第一个项目节点。
2. 选择 Project References > Add as Project Reference。
3. 选择项目作为超级项目,然后单击 OK。
To view and then remove project references, do the following:
1. 右键单击一个项目并选择 Project > Project References > Show Project References。引用所选项目的所有项目都会展开并被选中。
2. 选择一个项目或参考并执行以下操作之一:
- 要删除单个项目引用,请选择 Project > Project References > Remove Project Reference。
Workbench将当前选定的项目作为子项目从其结构 (逻辑) 上下文中删除,并将其作为项目资源管理器中的独立项目移至根级别。
- 要删除所有超级项目引用,请选择 Project > Project References > Remove Super Project References。
- 要删除所有子项目引用,请选择 Project > Project References > Remove Sub Project References。
- 要删除所有项目引用,请选择 Project > Project References > Remove All Project References。
To rename a project node, do the following:
1. 右键单击项目节点,然后选择 Rename。
2. 在文本字段中输入新名称,然后单击确定。
Moving Project Nodes
与当前项目关联的所有文件都在物理上的移动到您选择的位置,而在项目资源管理器中没有任何可见的更改。
To move a project, do the following:
1. 右键单击项目节点并选择 Move。
2. 清除 Use default location 复选框,Browse 到新位置,单击 OK,然后再次单击 OK。
3. 验证项目属性中的新位置。
Deleting Project Nodes
要删除可能链接到任意数量的其他项目结构的子项目,您必须首先执行以下操作之一:
- 取消链接子项目的所有实例,然后右键单击它并按 Delete。
- 获取工作区的平面视图。为此,请打开 Project Explorer 工具栏右上角的下拉列表,然后选择 Project Presentation > Flat。这隐藏了逻辑项目组织,并提供了一个带有子项目单个实例的平面视图。然后您可以选择它并按 Delete。
当您删除项目时,系统会询问您是否要 Delete project contents on disk。如果您选择不删除内容,那么唯一会发生的事情是项目(及其所有文件)在工作区中不再可见。 没有文件系统更改。但是,如果您决定删除项目内容,并且您已经在外部位置(例如,在与源文件相同的目录中)创建了项目,这可能会删除您的原始源文件或其他项目的内容工作区,而不是当前工作区中的项目。因此,在删除您的项目之前,请确保您知道它们的位置以及它们的链接对象。
7.4.2 Manipulating Target Nodes
目标节点无法被复制或移动。这些是纯粹的逻辑节点,除了创建它们的项目之外,在任何地方都没有任何意义。但是,如果您复制或移动整个项目,那么目标节点和在它们下面生成的构建目标也会被复制。
Editing Build Targets
您可以编辑项目的现有构建目标的内容。
To edit a build target, do the following:
1. 右键单击构建目标并选择 Edit Content。
2. 有关添加和编辑构建目标的内容的信息,请参见 Adding Build Targets to Managed Builds, p. 101。
Hiding and Deleting and Target Nodes
删除目标节点会删除代表生成的、物理上存在的构建目标的便利节点。 但是,物理上存在的构建目标(如果已构建)不会从磁盘中删除。即使您通过隐藏构建资源和/或折叠实际目标节点来整理 Project Explorer 中的视图,便利节点也可以让您一目了然地查看目标是否已构建。
To hide build targets, do the following:
1. 单击 Project Explorer 右上角的下拉菜单,然后选择 Customize View。
2. 从可用的自定义对话框中,选择 Wind River build targets 或您想要隐藏的任何其他内容,然后单击OK。如果您已折叠节点,+ 号表示构建目标存在。
7.5 Parsing Binary Images
Wind River 编译器和 GNU 编译器 (gcc) 都提供解析工具来显示来自二进制图像文件的信息,例如可执行文件或目标文件。这些工具提供有关二进制映像文件的详细信息,以帮助您发现节分配或内存布局中的问题。可以解析的文件包括可执行文件、内核模块、实时进程 (RTP) 和目标文件。
To view parser output for a binary image file, do the following:
- 在项目资源管理器中,双击二进制文件,该二进制文件位于 Binaries 节点下或构建规范树中。
Workbench 将会使用适当的工具解析二进制文件并在 Workbench Editor 中显示输出。
Configuring the Binary Parser Globally
您可以配置解析工具返回的结果。默认情况下,Wind River Compiler ddump 命令使用以下参数:
- -f(显示文件头)
- -h(显示所有节标题)
- -N(显示符号表信息)
默认情况下,gcc objdump 命令使用以下参数:
- -C(将低级符号名称分解为用户级名称)
- -x(显示所有可用的标题信息,包括符号表和重定位条目)
- -S(显示源代码与反汇编混合)
To configure the binary parser globally, do the following:
1. 选择 Window > Preferences > Wind River > Binary Parser。
2. 要更改 Wind River 编译器默认值,请编辑 Wind River Compiler ddump 字段。有关 ddump 参数的信息,请参阅 the Wind River Compiler User's Guide: DDUMP File Dumper。
3. 要更改 GNU 编译器默认值,请编辑 GNU objdump 字段。有关 objdump 参数的信息,请参阅 objdump 手册页。
Configuring the Binary Parser by Project
您可以在项目级别以及全局配置二进制解析器。
To configure the binary parser for a project, do the following:
1. 在 Project Explorer 中右键单击项目并选择 Properties > Binary Parser。
2. 要关闭二进制解析器,请取消选中 Enable binary parser 复选框。这是一个团队共享的设置,因为它修改了 .cproject 文件。如果要对该文件进行版本控制,则必须将其作为操作的一部分检出。
3. 要更改项目级别的默认参数,请选中启用 Enable project specific settings 复选框。
选中此复选框后,命令参数字段将变为活动状态。如果选中此复选框,Workbench 将从此对话框而不是 Workbench 首选项对话框中获取此项目的命令参数。