blob: b48d80b994b22144ff3affb18d4cd7f904994ecc [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Armazenando Projeto C/C++ do NetBeans nos Sistemas de Controle de Versão</title>
<link rel="stylesheet" href="../../../netbeans.css" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../print.css" media="print">
<link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="description"
content="An article about storing NetBeans IDE's or Oracle Solaris Studio IDE's C/C++ projects under version control systems">
<meta name="author" content="Vladimir Kvashin ">
<meta name="keywords" content="NetBeans, IDE, integrated development environment, tutorial, guide, user, documentation, open source, C, C++, version control systems, vcs, Oracle, Solaris, Studio, development platform">
</head>
<body>
<a name="top"></a>
<h1>Armazenando Projeto C/C++ do NetBeans nos Sistemas de Controle de Versão</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p>Contribuição de Vladimir Kvashin, mantida por Alyona Stashkova<br> Março de 2014 [Número da revisão: V8.0-1]</p>
</div>
<p>Iniciar o NetBeans IDE 7.3 armazenando projetos do NetBeans C/C ++ (especialmente projetos de código existente e projetos de binários) em VCS (sistemas de controle de versão) ficou mais fácil. Este artigo cobre os detalhes do armazenamento de projetos do NetBeans CC++ em VCS no NetBeans IDE.</p>
<h3>Conteúdo</h3>
<img alt="O conteúdo desta página se aplica ao NetBeans IDE 7.3 e mais recente" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="O conteúdo desta página se aplica ao NetBeans IDE 7.3 e mais recente">
<ul class="toc">
<li><a href="#requirements" title="Requisitos">Requisitos</a></li>
<li><a href="#issue" title="Problemas de Projeto Controlado por VCS Resolvidos no 7.3">Problemas de Projeto Controlado por VCS Resolvidos no NetBeans IDE</a>
<ul>
<li><a href="#unfriendly">Armazenamento de Dados de Projeto Não Amigável em VCS</a></li>
<li><a href="#compiler">Opções do Compilador</a></li>
</ul></li>
<li><a href="#variables" title="Lista de Variáveis do Ambiente">Lista de Variáveis do Ambiente</a></li>
<li><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></li>
<li><a href="#macros" title="Macros Transitórias">Macros Transitórias</a></li>
<li><a href="#prj" title="Gerenciando Projetos">Projetos Gerenciados</a></li>
<li><a href="#info" title="Mais Informações sobre C/C++/Suporte Fortran">Mais Informações sobre C/C++/Suporte Fortran</a></li>
</ul>
<h2><a NAME="requirements"></a>Requisitos</h2>
<p><b>Para seguir este tutorial, você precisa do software a seguir.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software</th>
<th class="tblheader" scope="col">Versão Necessária</th>
</tr>
<tr>
<td class="tbltd1">NetBeans IDE (incluindo o suporte ao C/C++)</td>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">versão 7.3 ou mais recente com o plug-in C/C++ do NetBeans</a></td>
</tr>
<tr>
<td class="tbltd1">Java Development Kit (JDK)</td>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Versão 6, 7 ou 8 </a></td>
</tr>
</tbody>
</table>
<br>
<p>Consulte as <a href="../../../community/releases/74/install.html">Instruções de Instalação do NetBeans IDE</a> e a <a href="../../../community/releases/74/cpp-setup-instructions.html"> Configuração do NetBeans IDE para o C/C++/Fortran</a> para obter informações sobre o download e a instalação do software necessário.</p>
<h2><a name="issue"></a>Problemas de Projeto Controlado por VCS Resolvidos no NetBeans IDE </h2>
<p>Os seguintes problemas foram resolvidos no NetBeans IDE:</p>
<ul><li><a href="#unfriendly">Armazenamento de dados de projeto não amigável em VCS</a></li>
<li><a href="#compiler">Opções do Compilador</a></li></ul>
<h3><a name="unfriendly"></a>Armazenamento de Dados de Projeto Não Amigável em VCS</h3>
<p>O NetBeans IDE usado para alterar os arquivos de metadados do projeto com muita frequência. Por exemplo, você pode apenas abrir um projeto que estava em VCS, não alterar nada e, de repente, perceber que alguns arquivos de metadados do projeto foram alterados, então você precisa verificá-los ou revertê-los.</p>
<p>Esse problema se relacionava principalmente a projetos de código existente e projetos de binário, em outras palavras, projetos baseados em arquivos feitos pelo usuário. </p>
<p>A raiz do problema era o IDE ter pouquíssima informação sobre quais arquivos de tais projetos faziam parte da compilação e com quais opções do compilador cada arquivo foi compilado. Sem esse conhecimento, a funcionalidade Assistência ao Código não podia ser preciso. Então, o IDE tinha que usar uma inteligência de segundo plano para descobrir o conteúdo do projeto e a configuração da Assistência ao Código e analisar os arquivos corretos com as opções corretas. Infelizmente, essa inteligência armazenava seus dados de uma forma não adequada ao uso de VCS.</p>
<h3><a name="compiler"></a>Opções do Compilador</h3>
<p>O problema do compilador reside no fato de as opções do compilador usadas para criar um projeto poderem ser muito específicas para a máquina em que você compila seu projeto. Por exemplo, a compilação OpenJDK usa <code>ALT_BOOTDIR</code>, que deve ser definido para o caminho para o meu JDK. Esse caminho pode ser diferente, mesmo em máquinas com o mesmo sistema operacional. O IDE armazena todas as opções do compilador em metadados do projeto; sem conhecer essas opções, ele não poderá analisar seu código da próxima vez e ser preciso o suficiente.</p>
<p>Quando alguma informação da máquina ou específica do usuário entra no VCS, os metadados do projeto são alterados depois que outro usuário o verifica e cria um projeto (novas opções são armazenadas), embora o usuário não tenha feito alterações no projeto.
</p>
<h2><a name="variables"></a>Lista de Variáveis do Ambiente</h2>
<p>Para projetos do código existente ou de binário, você pode especificar a lista de variáveis do ambiente que serão usadas no armazenamento de metadados do projeto. Quando o IDE armazena as opções do compilador e um valor de opção coincide com um valor de variável, serão escritas macros.</p>
<p> Considere o exemplo a seguir. As variáveis <code>ALT_BOOTDIR=/usr/jdk/latest</code> e <code>ALT_BOOTDIR</code> são listadas no campo mencionado acima no meu ambiente. Se o IDE percebe que a opção <code>-I/usr/jdk/latest/include</code> foi usada durante a compilação de um arquivo, ele irá armazenar o <code>${ALT_BOOTDIR}/include</code> nos metadados do projeto.</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 Configura Assistência ao Código é mais eficiente se você compila o código com informações de depuração. As melhores opções são <code>-g3 -gdwarf-2</code> para compiladores GNU e apenas <code>-g</code> para compiladores Sun.
</p>
<p>Caso seu projeto ainda não tenha sido compilado 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. Para esse fim, o assistente permite inserir o caminho para a procura de cabeçalhos. Por default, é uma raiz do código-fonte do projeto.</p>
<h2><a name="macros"></a>Macros Transitórias</h2>
<p>
Outro elemento que pode alterar os metadados do projeto inesperadamente são as macros (opções <code>-D</code>) voláteis. Por exemplo, uma macro que dependa de uma data ou nome de usuário atual. Armazenar esses valores de macro altera os arquivos de metadados do projeto, mas isso não faz muito sentido.</p>
<p>Você pode especificar a lista dessas macros a ignorar no campo "Macros transitórias". Isso impede o IDE de armazenar esses valores de macro nos metadados do projeto. As macros devem ser especificadas na forma macro=valor. Esta é uma tela das propriedades de um projeto:</p>
<p class="align-center">
<a href="../../../images_www/articles/73/cnd/cpp-vcs/proj_props.png" rel="lytebox" title="Propriedades do projeto"> <img alt="Propriedades do projeto" src="../../../images_www/articles/73/cnd/cpp-vcs/proj_props_small.png"></a></p>
<h2><a name="prj"></a>Projetos Gerenciados</h2>
<p>
Nos projetos gerenciados (projetos "Aplicação C/C++", "Biblioteca Dinâmica C/C++" ou "Biblioteca Estática C/C++"), é possível usar também as variáveis de ambiente para especificar opções do compilador. Elas devem ser precedidas de um cifrão e inseridas entre chaves, desta forma: <code>${ALTBOOTDIR}/include</code>.</p>
<h2><a name="info"></a>Mais Informações sobre C/C++/Suporte Fortran</h2>
<ul>
<li>Consulte <a href="https://netbeans.org/kb/trails/cnd.html">Trilha de Aprendizado C/C++</a> para obter mais informações sobre o uso das funcionalidades do NetBeans IDE.</li>
<li>Entre no <a href="http://forums.netbeans.org/cnd-users.html">Fórum de Usuário do NetBeans C/C++</a> para participar de discussões relacionadas ao desenvolvimento de C/C++ usando o NetBeans IDE ou pedir ajuda. </li>
<li>Você pode arquivar um bug ou sugerir aprimoramentos para o <a href="https://netbeans.org/bugzilla/enter_bug.cgi?component=cnd">Bugzilla</a> (é necessário ter registro no netbeans.org).</li>
<li>Para obter informações sobre como usar pacotes de controle de versão populares com o NetBeans IDE, consulte " <a href="http://www.oracle.com/pls/topic/lookup?ctx=nb7400&amp;id=NBDAG234">Aplicando Controle de Versão às Aplicações com Controle de Versão</a>" em <i>Desenvolvendo Aplicações com o NetBeans IDE</i>.</li>
</ul>
<div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20Storing%20NetBeans%20C/++%20Projects%20Under%20Version%20Control%20System">Enviar Feedback neste Tutorial</a><br style="clear:both;">
</div>
</body>
</html>