blob: fec3dbbab31c49f6a4fb140acda2a83eae8c4472 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= 关于代码帮助的 C/C++ 应用程序指导
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 关于代码帮助的 C/C++ 应用程序指导 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 关于代码帮助的 C/C++ 应用程序指导
_撰稿人:link:mailto:vladimir.kvashin@oracle.com[+_Vladimir Kvashin_+] link:mailto:vladimir.voskresensky@oracle.com[+_Vladimir Voskresensky_+]
2013 3 _ [修订版本号:V8.0]
代码帮助是一组可帮助您导航和编辑源代码的 IDE 功能。对于现有源代码中的 C/C++ 项目或现有二进制文件中的 C/C++ 项目,可以指定如何解析代码以启用 IDE 的代码帮助功能。
请注意,本文中的提示主要应用于现有源代码或现有二进制文件中的项目。对于由 IDE 创建和管理的项目,代码帮助配置不是必需的。
== 如果“项目”窗口中显示带有问号的项目该怎么办
如果“项目”窗口中显示带有问号的项目,或者 ``#include`` 指令标有红色下划线,则表明项目中包含未解析的 include 指令。IDE 将使用代码帮助功能(“代码完成”、“类”窗口和“导航器”窗口等)所用的内部解析器。存在标记意味着,该解析器无法解析某些 ``#include`` 指令,因为 IDE 项目具有不正确的配置。这可能会在以下情况下发生:项目是从现有源创建的,而未借助于调试信息,或者源文件包含了自 IDE 项目创建以来的新库。
下面是一些可能的原因(按可能性从大到小的顺序排列):
* 在项目、逻辑文件夹或文件属性中指定的用户包含路径错误或不足
* 在项目、逻辑文件夹或文件属性中指定的用户定义宏错误或不足
* 误将源文件包含在项目中
* 头文件未包含在任何源文件中,因而误将该文件包含在项目中
如果您将鼠标光标放在项目文件夹之上,则工具提示会显示一些有关问题的信息。有关详细信息,您可以右键单击项目并选择“代码帮助”->“失败的 #include/#error 指令”。
尝试启动配置代码帮助向导(右键单击项目,然后选择“代码帮助”>“配置代码帮助”)以解决问题。如果您知道与执行失败的 include 指令相对应的文件所在位置,则可以手动设置项目、逻辑文件夹和文件属性。
== 为代码帮助配置构建分析器
假定您的应用程序源代码使用版本控制系统 (VCS)(例如 Mercurial)进行管理,并且从源代码创建 IDE 项目。如果在 IDE 中打开 IDE 项目并从 VCS 拉入更改,则您应构建 IDE 项目,以便通过修改使其保持最新。
IDE 中构建项目之后,IDE 将自动通过以下方式更新项目:
* 将新编译单元添加到 IDE 项目中。
* 使用新的或已更改的用户定义的 include 和宏修改现有编译单元。
* 从构建中排除的编译单元并不从代码帮助中排除。
IDE 使用构建分析器从构建中收集信息,并使用中介技术来捕获 Oracle Solaris Linux 平台上的系统库 exec 调用。默认情况下,当您使用现有源创建项目时和手动运行配置代码帮助时,使用构建分析器。如果未使用构建分析器,则使用构建的输出日志来捕获信息。
如果您不希望 IDE 执行项目更新,则可以如下所示禁用构建分析器:
1. 右键单击“项目”窗口中的项目节点,然后选择“属性”。
2. 在“项目属性”对话框中,单击“代码帮助”类别。
3. 取消选择“使用构建分析器”选项。
对于构建时设置其自己的环境的源代码项目,构建分析器可能不会始终正常工作。如果在选定“使用构建分析器”选项时构建失败,则您应检查构建脚本以了解是否已取消设置 ``LD_LIBRARY_PATH`` 环境变量。如果取消设置了 ``LD_LIBRARY_PATH`` ,则您还应取消设置 ``LD_PRELOAD`` 。取消设置这两个变量之后,将自动禁用构建分析器。如果您无法修改构建脚本,则可以如上所述禁用构建分析器,而 IDE 可以使用输出日志来获取构建信息。
== 为多平台项目配置代码帮助
如果开发的是基于现有代码的多平台项目,则可在不同平台上使用相同的 IDE 项目。按平台创建配置并相应地更改编译器集合、编译器选项和其他项目属性。
配置代码帮助向导也可以基于配置运行:只修改当前处于活动状态的配置。因此,您可以针对每个配置单独运行该向导,并针对不同平台获取不同的代码帮助设置。
== 无法构建项目时配置代码帮助
如果使用调试信息(对于 GNU 编译器,最佳选项是 ``-g3 -gdwarf-2`` ;对于 Oracle Solaris Studio 编译器,最佳选项是 ``-g`` )构建代码,则配置代码帮助向导最有效。
如果无法构建项目或项目中不包含调试信息,则配置代码帮助向导会提供一种称为“在文件系统中搜索 C/C++ 头文件”的特殊模式。在这种模式下,NetBeans IDE 会尝试在文件系统中搜索头文件,以解析执行失败的 include 指令。该向导会让您输入头文件的搜索路径。默认情况下,搜索路径是项目的源根目录。
要使用该向导,请右键单击项目并选择“代码帮助”>“配置代码帮助”。按照该向导的步骤启用 IDE 以更新代码帮助。单击“帮助”按钮可获取有关每个步骤的信息。
== 使用超链接在调用和声明之间导航
通过使用超链接导航,可以从调用函数、类、方法、变量或常量跳转至声明。要使用超链接,请执行以下操作之一:
* 按住 Ctrl 的同时将鼠标移到类、方法、变量或常量之上。超链接将与一个工具提示一起显示,该工具提示显示元素的相关信息。单击超链接,编辑器将跳转至声明。按 Alt+左箭头将跳转回调用。
* 将鼠标移到标识符之上并按 Ctrl+B。编辑器将跳转至声明。
* Alt+左箭头将跳转回调用。按 Alt+左箭头和 Alt+右箭头可以在光标位置的历史记录中前后移动。
您还可以右键单击相应项并选择“导航”>“转至声明/定义”,或选择其他选项在代码中导航。
== 查找名称空间的所有定义
名称空间可以在项目的不同文件中定义。要在不同的名称空间定义之间导航,请使用“类”窗口(Ctrl-9 组合键)。右键单击所需的名称空间,然后选择“所有声明”。此时将显示按文件名排序的所有定义的列表。
link:mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20C/C++%20Application%20How-Tos%20-%20NetBeans%20IDE%208.0[+发送有关此教程的反馈意见+]