blob: 6c0fcf914fe512a223def270815ab101c6c633b3 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Instruções da Aplicação C/C++ para Assistência ao Código</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>Instruções da Aplicação C/C++ para Assistência ao Código</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p><em>Colaboração de <a href="mailto:vladimir.kvashin@oracle.com"><i>Vladimir Kvashin</i></a> e <a href="mailto:vladimir.voskresensky@oracle.com"><i>Vladimir Voskresensky</i></a><br> Março de 2013</em> [Número da revisão: V8.0]
</div>
<p>A assistência ao código é um conjunto de funcionalidades do IDE que ajuda a navegar e editar o código-fonte. Para um Projeto C/C++ com Códigos-fonte Existentes ou um Projeto C/C++ do Binário Existente, você pode especificar como seu código será submetido a parse para ativar as funcionalidades de assistência ao código do IDE.
</p>
<p>Observe que as dicas deste artigo aplicam-se principalmente a projetos de código-fonte existente ou de um binário existente. Para projetos que são criados e gerenciados pela assistência ao código IDE, a configuração não é necessária. </p>
<h3>Conteúdo</h3>
<img alt="O conteúdo desta página aplica-se ao NetBeans IDE 8.0/7.4/7.3" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="O conteúdo desta página aplica-se ao NetBeans IDE 8.0/7.4/7.3">
<table class="b-none vatop" cellpadding="0" cellspacing="0">
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#questionmark" title="O que Fazer quando seu Projeto Tem um Ponto de Interrogação na Janela Projetos ou uma Diretiva #include é Sublinhada em Vermelho">O que Fazer quando seu Projeto Tem um Ponto de Interrogação na Janela Projetos ou uma Diretiva #include é Sublinhada em Vermelho </a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#analyzer" title="Configurando o Analisador de Código para a Assistência ao Código"> Configurando o Analisador de Código para a Assistência ao Código</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#multiplatform" title="Configurando a Assistência ao Código para um Projeto Multiplataforma">Configurando a Assistência ao Código para um Projeto Multiplataforma</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#cannotbuild" title="Configurando a Assistência ao Código Quando Você Não Consegue Construir o Projeto">Configurando a Assistência ao Código Quando Você não Consegue Construir o Projeto</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#definitiondeclaration" title="Quando um Hiperlink vai para uma Definição de Função e Quando vai para uma Declaração">Quando um Hiperlink vai para uma Definição de Função e Quando vai para uma Declaração</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#namespace" title="Encontrando Todas as Definições de um Namespace">Encontrando Todas as Definições de um Namespace</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#declaration" title="Vendo o Nome de Declaração de uma Declaração Feita em uma Macro">Vendo o Nome de Declaração de uma Declaração Feita em uma Macro</a></td>
</tr>
</table>
<h2><a name="questionmark"></a>O que Fazer quando seu Projeto Tem um Ponto de Interrogação na Janela Projetos</h2>
<p>
Se seu projeto tem um ponto de interrogação na janela projetos ou uma diretiva <tt>#include</tt> está sublinhada em vermelho, então seu projeto tem políticas include não resolvidas. O IDE usa o parser interno que é usado por funcionalidades de Assistência ao Código (Autocompletar Código, janela Classes, janela Navegador etc.). As marcações significam que esse parser não conseguiu resolver algumas diretivas <tt>#include</tt>, pois o projeto IDE tem uma configuração incorreta. Isso pode ter ocorrido se o projeto tiver sido criado de fontes existentes sem a ajuda de informações de depuração ou se, por exemplo, os arquivos de origem tiverem incluído novas bibliotecas desde a criação do projeto IDE.
</p>
<p>
Estes são alguns dos possíveis motivos (organizados do mais para o menos provável):</p>
<ul>
<li>Caminhos include do usuário errados ou insuficientes especificados no projeto, na pasta lógica ou nas propriedades do arquivo</li>
<li>Macros definidas pelo usuário erradas ou insuficientes especificadas no projeto, na pasta lógica ou nas propriedades do arquivo</li>
<li>O arquivo de código-fonte foi incluído no projeto por engano</li>
<li>O arquivo de cabeçalho não foi incluído em nenhum arquivo de código-fonte e, portanto, foi incluído no projeto por engano</li>
</ul>
<p>
Se você retiver o cursor do mouse sobre a pasta do projeto, uma dica de ferramenta exibirá algumas informações sobre o problema. Para obter mais informações, você pode clicar com o botão direito do mouse e selecionar Assistência ao Código -> Diretivas #include/#error com falha. </p>
<p>
Tente iniciar o assistente Configurar Assistência ao Código clicando com o botão direito do mouse no nó do projeto e selecionando Assistência ao Código > Configurar Assistência ao Código para resolver o problema. Se você conhece o local dos arquivos que correspondem à diretiva include com falha, poderá configurar manualmente o projeto, a pasta lógica e as propriedades do arquivo.
</p>
<h2><a name="analyzer"></a>Configurando o Analisador de Código para a Assistência ao Código
</h2>
<p>
Suponha que o código-fonte da sua aplicação seja gerenciado com um VCS (sistema de controle de versão) como Mercurial e você crie um projeto do IDE com o código-fonte. Se você abrir o projeto do IDe no IDE e obtiver as alterações do VCS, deverá compilar o projeto do IDE para atualizá-lo com as modificações.</p>
<p>
Depois que você criar seu projeto no IDE, o projeto será automaticamente atualizado pelo IDE das seguintes formas:
<ul>
<li>Novas unidades de compilação serão adicionadas ao projeto do IDE.</li>
<li>As unidades de compilação existentes serão modificadas com inclusões e macros definidas pelo usuário novas ou alteradas.</li>
<li>As unidades de compilação que são excluídas da compilação não são excluídas da assistência ao código.</li>
</ul>
<p>O IDE usa um analisador de compilação para obter informações da compilação, usando uma técnica de interposição para obter chamadas de exec da biblioteca do sistema nas plataformas Oracle Solaris e Linux. Por padrão, o analizador de compilação é usado quando você cria um projeto com fontes existentes e quando executa manualmente Configurar Assistência ao Código. Se o analizador de compilação não for usado, o log de saída da compilação será usado para capturar informações.</p>
<p>
Se você não quiser que o IDE execute atualizações no projeto, poderá desativar o analizador de compilação desta forma:
</p>
<ol><li>Clique com o botão direito do mouse no nó do projeto na janela Projetos e selecione Propriedades.</li>
<li>Na caixa de diálogo Propriedades do Projeto, clique na categoria Assistência ao Código.</li>
<li>Cancele a seleção da opção Usar Analisador de Compilação.</li></ol>
<p class="tips">Para projetos de código-fonte que configuram o próprio ambiente no momento da compilação, o analisador de compilação nem sempre funciona bem. Se uma compilação falhar quando a opção Usar Analisador de Compilação for selecionada, você deverá verificar o script da compilação para ver se cancelou a definição da variável de ambiente <tt>LD_LIBRARY_PATH</tt>. Se <tt>LD_LIBRARY_PATH</tt> não estiver definida, você também deverá cancelar a definição de <tt>LD_PRELOAD</tt>. Quando a definição dessas duas variáveis é cancelada, o analizador de compilação é automaticamente desativado. Se você não conseguir modificar o script da compilação, poderá desativar o analizador de compilação como descrito acima e o IDE poderá usar o log de saída para obter informações da compilação.</p>
<h2><a name="multiplatform"></a>Configurando a Assistência ao Código para um Projeto Multiplataforma</h2>
<p>
Se você estiver desenvolvendo um projeto multiplataforma usando um código existente, poderá usar o mesmo projeto IDE para diferentes plataformas. Crie uma configuração por plataforma e alterar a coleção de compiladores, opções do compilador e outras propriedades do projeto adequadamente.
</p>
<p>O assistente Configurar Assistência ao Código também funciona por configuração: ele altera somente a configuração que está atualmente ativa. Portanto, é possível executá-lo separadamente para cada configuração e obter diferentes definições de assistência ao código para diferentes plataformas.
</p>
<h2><a name="cannotbuild"></a>Configurando a Assistência ao Código Quando Você não Consegue Construir o Projeto</h2>
<p>O assistente Configurar Assistência ao Código será mais eficiente se você criar seu código com informações de depuração (as melhores opções são <tt>-g3 -gdwarf-2</tt> para compiladores GNU e somente <tt>-g</tt> para compiladores Oracle Solaris Studio.
</p>
<p>Caso não seja possível compilar seu projeto ou se ele não contiver informações de depuração, o assistente Configurar Assistência ao Código tem um modo especial denominado Pesquisar Sistema de Arquivos para Arquivos de Cabeçalho C/C++. Nesse modo, o NetBeans IDE tenta solucionar diretivas include com falha procurando cabeçalhos no sistema de arquivos. O assistente permite inserir um caminho para pesquisar cabeçalhos. Por padrão, o caminho pesquisado é uma raiz de origem do projeto.
</p>
<p>Para usar o assistente, clique com o botão direito do mouse e escolha Assistência ao Código > Configurar Assistência ao Código. Siga as etapas do assistente para permitir que o IDE atualize a assistência ao código. Clique no botão Ajuda para obter informações sobre cada etapa.</p>
<p></p>
<h2><a name="definitiondeclaration"></a>Usando Hiperlinks para Navegar entre Chamadas e Declarações</h2>
<p>A navegação por hiperlinks permite passar de chamadas de uma função, classe, método, variável ou constante para sua declaração. Para usar um hiperlink, siga um destes procedimentos:</p>
<ul>
<li>Passe o mouse sobre uma classe, método, variável ou constante, pressionando a tecla Ctrl. Um hiperlink é exibido juntamente com uma dica de ferramenta com informações sobre o elemento. Clique no hiperlink e o editor passará para a declaração. Pressione Alt+Seta para a esquerda para voltar para a chamada.
</li>
<li>Passe o mouse sobre um identificador e pressione Ctrl+B. O editor passa para a declaração.</li>
<li> Pressione Alt+Seta para a esquerda para voltar para a chamada. Pressione Alt+Seta para a esquerda e Alt + Seta para a direita para se mover para frente e para trás no histórico de posição do cursor.</li>
</ul>
<p>Você também pode clicar com o botão direito do mouse em um item e selecionar Navegar > Ir para Declaração/Definição ou outras opções para navegar pelo código.</p>
<h2><a name="namespace"></a>Encontrando Todas as Definições de um Namespace</h2>
<p>
Um namespace pode ser definido em diferentes arquivos do projeto. Para navegar entre diferentes definições de namespace, use a janela Classes (Ctrl-9). Clique com o botão direito do mouse no namespace no qual está interessado e selecione Todas as Declarações. Você verá uma lista de todas as definições classificadas por nomes de arquivo.
</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">Enviar Feedback neste Tutorial</a><br style="clear:both;">
</div>
</body>
</html>