// 
//     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.
//

= Definindo o Ambiente de Desenvolvimento do Projeto C/C++
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Definindo o Ambiente de Desenvolvimento do Projeto C/C++ - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Definindo o Ambiente de Desenvolvimento do Projeto C/C++

_Março de 2014_ [Número da revisão: V8.0-1]

O tutorial resumido a seguir conduz você pelas etapas básicas da seleção do host de compilação e da coleção de ferramentas para construção e depuração de um projeto C ou C++ no NetBeans IDE.


image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.3 e mais recente"]



== Requisitos

*Para seguir este tutorial, são necessários os recursos e o software a seguir.*

|===
|Software ou Recurso |Versão Necessária 

|NetBeans IDE |link:https://netbeans.org/downloads/index.html[+versão 7.3 ou mais recente com o plug-in C/C++ do NetBeans+] 

|JDK (Java Developer Kit) |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+versão 6, 7 ou 8+] 
|===


Consulte as link:../../../community/releases/80/install.html[+Instruções de Instalação do NetBeans IDE+] para obter informações sobre o download e instalação do software NetBeans necessário.


== Instalando Coleções de Ferramentas

O módulo NetBeans C/C++ requer no mínimo um compilador C, compilador C++, utilitário make e depurador gdb. Consulte link:../../../community/releases/80/cpp-setup-instructions.html[+Configurando o NetBeans IDE para C/C++/Fortran+] para obter instruções de instalação e configuração das ferramentas e compiladores necessários.


== Especificando o Host de Compilação

É possível construir, executar e depurar o projeto no host local (o sistema a partir do qual se iniciou o IDE) ou um host remoto que esteja executando um sistema operacional UNIX®. Somente os sistemas operacionais Oracle Solaris e Linux foram testados como hosts remotos de compilação. Inicialmente, o IDE está configurado para usar somente o host local.

Você pode definir hosts de compilação remota de várias formas:

* Usando a janela Serviços: Selecione Janela > Serviços, em seguida, clique com o botão direito do mouse em Hosts de Compilação do C/C++ e selecione Adicionar Novo Host.
* Clique com o botão direito do mouse em um projeto, selecione Definir Host de Compilação > Gerenciar Hosts, em seguida, clique em Adicionar na caixa de diálogo Gerenciador de Host de Compilação.
* Usando a janela Opções: Escolha Ferramentas > Opções > C/C++ > Construir Ferramentas e clique no botão Editar ao lado da lista Host de Compilação.

Defina o link:./remotedev-tutorial.html[+Tutorial de Desenvolvimento Remoto do C/C+++] para obter mais informações.


== Utilizando a Lista Coleção de Ferramentas

A lista Coleção de Ferramentas mostra que as coleções de ferramentas estão disponíveis para o IDE no host local e em cada host de compilação remota. Você pode ver as Coleções de Ferramentas de uma das seguintes formas:

* Usando a janela Serviços: escolha Janela > Serviços, expanda Hosts de Compilação C/C++ e o host no qual você está interessado. O nó Coleções de Ferramentas lista as coleções de ferramentas disponíveis no host.
* Use a janela Projetos: clique com o botão direito do mouse em um projeto, selecione Propriedades e clique na categoria Construir. Você pode selecionar uma coleção de ferramentas para usar para o projeto ou clicar no botão próximo à lista de Coleções de Ferramentas para abrir o Gerenciador de Coleção de Ferramentas para definir a coleção default e adicionar ou remover as coleções de ferramentas.
* Usando a janela Opções: escolha Ferramentas > Opções > C/C++ > Ferramentas de Construção. Nesta folha de propriedades você pode gerenciar as coleções de ferramentas após selecionar o host na lista Host de Compilação.

Em cada caso, a lista Coleção de Ferramentas exibe as coleções encontradas no host selecionado atualmente na lista Host de Compilação. A coleção default é listada em negrito e é selecionada para qualquer novo projeto que você cria usando o host de compilação. É possível alterar a coleção de ferramentas de um projeto específico nas propriedades do projeto.


=== Alterando a Coleção de Ferramentas Default

Para alterar a coleção de ferramentas default, selecione uma coleção na lista Coleção de Ferramentas e clique em Default. A nova coleção de ferramentas default será selecionada para os novos projetos criados que usem o host de compilação selecionado.


=== Adicionando uma Coleção de Ferramentas a um Host de Compilação

Quando você adiciona uma coleção de ferramentas, os compiladores ficam disponíveis para o IDE. As ferramentas já devem estar instaladas no sistema.

Para adicionar uma coleção de ferramentas associada a um host de compilação:

1. Na janela Serviços, expanda o nó para o Host de Compilação C/C++ no qual você deseja adicionar a coleção.
2. Clique com o botão direito do mouse no nó Coleções de Ferramentas e selecione Adicionar Nova Coleção de Ferramentas.
Você também pode adicionar coleções na guia Ferramentas > Opções > Ferramentas da Compilação C/C++ > Construir Ferramentas, clicando no botão Adicionar abaixo da lista Coleção de Ferramentas. 

A caixa de diálogo Adicionar Coleção de Ferramentas é aberta. 

image::images/add-collection.png[]
3. Na caixa de diálogo Adicionar Nova Coleção de Ferramentas, digite o caminho do diretório dos arquivos executáveis da coleção de ferramentas no campo Diretório base ou use o botão Procurar para ir até o diretório, que geralmente é chamado  ``bin`` .
4. Os campos Família de Coleções de Ferramentas e Nome da Coleção de ferramentas são preenchidos automaticamente com caminhos válidos. Você pode especificar um nome diferente para exibir no IDE para a coleção. Se você alterar a Família de Coleções de Ferramentas, certifique-se de que a família especificada seja a correta para a coleção; caso contrário, os flags do compilador talvez não sejam válidos.
5. Clique em OK. 

A nova coleção de ferramentas é adicionada à lista de Coleção de Ferramentas.


== Alterando a Coleção de Ferramentas de um Projeto

Quando você cria um projeto, a coleção de ferramentas default é selecionada como a coleção de ferramentas do projeto. É possível alterar a coleção de ferramentas do projeto por outra na lista de coleções ou é possível personalizar uma coleção especialmente para o projeto.

Para selecionar outra coleção de ferramentas para um projeto existente:

1. Clique com o botão direito do mouse no nó do projeto na janela Projetos e escolha Propriedades.
2. Na caixa de diálogo Propriedades do Projeto, selecione o nó Construir na lista Categorias.
3. Nas propriedades das ferramentas de construção, certifique-se de que o Host de Compilação esteja definido como o host em que deseja construir.
4. Selecione uma coleção na lista drop-down Coleção de Ferramentas. 

image::images/select-collection.png[]
5. Clique em OK.

Na próxima vez que o projeto for construído, será usada a coleção de ferramentas selecionada.


== Consulte Também

Consulte a link:https://netbeans.org/kb/trails/cnd.html[+Trilha do Aprendizado C/C+++] para obter mais artigos sobre o desenvolvimento com C/C++/Fortran no NetBeans IDE.

link:mailto:users@cnd.netbeans.org?subject=Feedback:%20Defining%20Your%20C/C++%20Project's%20Development%20Environment%20-%20NetBeans%20IDE%207.3%20Tutorial[+Enviar Feedback neste Tutorial+]
