blob: 7ad6dd522ff9b3d87145d284fb9c0c5041025d27 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>关于代码帮助的 C/C++ 应用程序指导</title>
<link rel="stylesheet" href="../../../netbeans.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="description"
content="This article discusses how to solve issues you may encounter with the C/C++ code assistance features
of the NetBeans IDE or Oracle Solaris Studio IDE.">
<meta name="author" content="Vladimir Kvashin and Vladimir Voskresensky"> <!--Optional tag-->
<meta name="keywords" content="development, NetBeans, IDE, C, C++, Oracle Solaris Studio, code assistance, namespace">
</head>
<body>
<a name="top"></a>
<h1>关于代码帮助的 C/C++ 应用程序指导</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p><em>撰稿人:<a href="mailto:vladimir.kvashin@oracle.com"><i>Vladimir Kvashin</i></a><a href="mailto:vladimir.voskresensky@oracle.com"><i>Vladimir Voskresensky</i></a><br> 2013 年 3 月</em> [修订版本号:V8.0]
</div>
<p>代码帮助是一组可帮助您导航和编辑源代码的 IDE 功能。对于现有源代码中的 C/C++ 项目或现有二进制文件中的 C/C++ 项目,可以指定如何解析代码以启用 IDE 的代码帮助功能。
</p>
<p>请注意,本文中的提示主要应用于现有源代码或现有二进制文件中的项目。对于由 IDE 创建和管理的项目,代码帮助配置不是必需的。 </p>
<h3>目录</h3>
<img alt="此页上的内容适用于 NetBeans IDE 8.0/7.4/7.3" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="此页上的内容适用于 NetBeans IDE 8.0/7.4/7.3">
<table class="b-none vatop" cellpadding="0" cellspacing="0">
<tr>
<td class="hyphen">- </td>
<td><a href="#questionmark" title="如果“项目”窗口中显示带有问号的项目或 #include 指令带有红色下划线该怎么办">如果“项目”窗口中显示带有问号的项目或 #include 指令带有红色下划线该怎么办</a></td>
</tr>
<tr>
<td class="hyphen">- </td>
<td><a href="#analyzer" title="为代码帮助配置构建分析器"> 为代码帮助配置构建分析器</a></td>
</tr>
<tr>
<td class="hyphen">- </td>
<td><a href="#multiplatform" title="为多平台项目配置代码帮助">为多平台项目配置代码帮助</a></td>
</tr>
<tr>
<td class="hyphen">- </td>
<td><a href="#cannotbuild" title="无法构建项目时配置代码帮助">无法构建项目时配置代码帮助</a></td>
</tr>
<tr>
<td class="hyphen">- </td>
<td><a href="#definitiondeclaration" title="超链接何时转至函数定义以及声明">超链接何时转至函数定义以及声明</a></td>
</tr>
<tr>
<td class="hyphen">- </td>
<td><a href="#namespace" title="查找名称空间的所有定义">查找名称空间的所有定义</a></td>
</tr>
<tr>
<td class="hyphen">- </td>
<td><a href="#declaration" title="查看在宏中所作声明的声明名称">查看在宏中所作声明的声明名称</a></td>
</tr>
</table>
<h2><a name="questionmark"></a>如果“项目”窗口中显示带有问号的项目该怎么办</h2>
<p>
如果“项目”窗口中显示带有问号的项目,或者 <tt>#include</tt> 指令标有红色下划线,则表明项目中包含未解析的 include 指令。IDE 将使用代码帮助功能(“代码完成”、“类”窗口和“导航器”窗口等)所用的内部解析器。存在标记意味着,该解析器无法解析某些 <tt>#include</tt> 指令,因为 IDE 项目具有不正确的配置。这可能会在以下情况下发生:项目是从现有源创建的,而未借助于调试信息,或者源文件包含了自 IDE 项目创建以来的新库。
</p>
<p>
下面是一些可能的原因(按可能性从大到小的顺序排列):</p>
<ul>
<li>在项目、逻辑文件夹或文件属性中指定的用户包含路径错误或不足</li>
<li>在项目、逻辑文件夹或文件属性中指定的用户定义宏错误或不足</li>
<li>误将源文件包含在项目中</li>
<li>头文件未包含在任何源文件中,因而误将该文件包含在项目中</li>
</ul>
<p>
如果您将鼠标光标放在项目文件夹之上,则工具提示会显示一些有关问题的信息。有关详细信息,您可以右键单击项目并选择“代码帮助”->“失败的 #include/#error 指令”。 </p>
<p>
尝试启动配置代码帮助向导(右键单击项目,然后选择“代码帮助”>“配置代码帮助”)以解决问题。如果您知道与执行失败的 include 指令相对应的文件所在位置,则可以手动设置项目、逻辑文件夹和文件属性。
</p>
<h2><a name="analyzer"></a>为代码帮助配置构建分析器
</h2>
<p>
假定您的应用程序源代码使用版本控制系统 (VCS)(例如 Mercurial)进行管理,并且从源代码创建 IDE 项目。如果在 IDE 中打开 IDE 项目并从 VCS 拉入更改,则您应构建 IDE 项目,以便通过修改使其保持最新。</p>
<p>
在 IDE 中构建项目之后,IDE 将自动通过以下方式更新项目:
<ul>
<li>将新编译单元添加到 IDE 项目中。</li>
<li>使用新的或已更改的用户定义的 include 和宏修改现有编译单元。</li>
<li>从构建中排除的编译单元并不从代码帮助中排除。</li>
</ul>
<p>IDE 使用构建分析器从构建中收集信息,并使用中介技术来捕获 Oracle Solaris 和 Linux 平台上的系统库 exec 调用。默认情况下,当您使用现有源创建项目时和手动运行配置代码帮助时,使用构建分析器。如果未使用构建分析器,则使用构建的输出日志来捕获信息。</p>
<p>
如果您不希望 IDE 执行项目更新,则可以如下所示禁用构建分析器:
</p>
<ol><li>右键单击“项目”窗口中的项目节点,然后选择“属性”。</li>
<li>在“项目属性”对话框中,单击“代码帮助”类别。</li>
<li>取消选择“使用构建分析器”选项。</li></ol>
<p class="tips">对于构建时设置其自己的环境的源代码项目,构建分析器可能不会始终正常工作。如果在选定“使用构建分析器”选项时构建失败,则您应检查构建脚本以了解是否已取消设置 <tt>LD_LIBRARY_PATH</tt> 环境变量。如果取消设置了 <tt>LD_LIBRARY_PATH</tt>,则您还应取消设置 <tt>LD_PRELOAD</tt>。取消设置这两个变量之后,将自动禁用构建分析器。如果您无法修改构建脚本,则可以如上所述禁用构建分析器,而 IDE 可以使用输出日志来获取构建信息。</p>
<h2><a name="multiplatform"></a>为多平台项目配置代码帮助</h2>
<p>
如果开发的是基于现有代码的多平台项目,则可在不同平台上使用相同的 IDE 项目。按平台创建配置并相应地更改编译器集合、编译器选项和其他项目属性。
</p>
<p>配置代码帮助向导也可以基于配置运行:只修改当前处于活动状态的配置。因此,您可以针对每个配置单独运行该向导,并针对不同平台获取不同的代码帮助设置。
</p>
<h2><a name="cannotbuild"></a>无法构建项目时配置代码帮助</h2>
<p>如果使用调试信息(对于 GNU 编译器,最佳选项是 <tt>-g3 -gdwarf-2</tt>;对于 Oracle Solaris Studio 编译器,最佳选项是 <tt>-g</tt>)构建代码,则配置代码帮助向导最有效。
</p>
<p>如果无法构建项目或项目中不包含调试信息,则配置代码帮助向导会提供一种称为“在文件系统中搜索 C/C++ 头文件”的特殊模式。在这种模式下,NetBeans IDE 会尝试在文件系统中搜索头文件,以解析执行失败的 include 指令。该向导会让您输入头文件的搜索路径。默认情况下,搜索路径是项目的源根目录。
</p>
<p>要使用该向导,请右键单击项目并选择“代码帮助”>“配置代码帮助”。按照该向导的步骤启用 IDE 以更新代码帮助。单击“帮助”按钮可获取有关每个步骤的信息。</p>
<p></p>
<h2><a name="definitiondeclaration"></a>使用超链接在调用和声明之间导航</h2>
<p>通过使用超链接导航,可以从调用函数、类、方法、变量或常量跳转至声明。要使用超链接,请执行以下操作之一:</p>
<ul>
<li>按住 Ctrl 的同时将鼠标移到类、方法、变量或常量之上。超链接将与一个工具提示一起显示,该工具提示显示元素的相关信息。单击超链接,编辑器将跳转至声明。按 Alt+左箭头将跳转回调用。
</li>
<li>将鼠标移到标识符之上并按 Ctrl+B。编辑器将跳转至声明。</li>
<li> 按 Alt+左箭头将跳转回调用。按 Alt+左箭头和 Alt+右箭头可以在光标位置的历史记录中前后移动。</li>
</ul>
<p>您还可以右键单击相应项并选择“导航”>“转至声明/定义”,或选择其他选项在代码中导航。</p>
<h2><a name="namespace"></a>查找名称空间的所有定义</h2>
<p>
名称空间可以在项目的不同文件中定义。要在不同的名称空间定义之间导航,请使用“类”窗口(Ctrl-9 组合键)。右键单击所需的名称空间,然后选择“所有声明”。此时将显示按文件名排序的所有定义的列表。
</p>
<div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20C/C++%20Application%20How-Tos%20-%20NetBeans%20IDE%208.0">发送有关此教程的反馈意见</a><br style="clear:both;">
</div>
</body>
</html>