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

= Tutorial para Início Rápido de Projetos C/C++
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Tutorial para Início Rápido de Projetos C/C++ - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Tutorial para Início Rápido de Projetos C/C++

Colaboração de _Ann Rice_ e mantida por _Susan Morgan_ 
_Março de 2014_ [Número da revisão: V8.0-1]

O curto tutorial a seguir orienta você pelas etapas básicas da criação e configuração de um projeto no NetBeans IDE.


image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2 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.2 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+] 

|Compiladores C e C++,  ``make`` ,  ``gdb``  |link:../../../community/releases/80/cpp-setup-instructions.html[+Configurando o NetBeans IDE para C/C++/Fortran+] 
|===


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

*Projetos de Amostra*

Se quiser apenas conhecer alguns projetos de amostra fornecidos pelo IDE, escolha Arquivo > Novo Projeto, em seguida, abra a categoria Amostras e a subcategoria C/C++. O IDE fornece vários projetos C e C++ de amostra para ajudá-lo a se familiarizar com o IDE.


== Criando Projetos em C e C++

O suporte a C/C++ do NetBeans permite criar projetos da Biblioteca e Aplicação C e C++ com makefiles gerados, bem como projetos em C e C++ com códigos-fonte existentes.

É 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®. Para obter informações sobre a especificação da coleção de ferramentas do projeto e sobre a definição e o uso de hosts remotos, consulte link:development-environment.html[+Definindo Ambiente de Desenvolvimento de Projeto C/C+++].

Com um Aplicação C/C++, Biblioteca Estática ou D, o IDE controla todos os aspectos quanto a como a aplicação é construída, executada e depurada. As definições do projeto são especificadas na criação do projeto e na caixa de diálogo Propriedades do Projeto. O IDE gera um makefile no qual todas as definições são armazenadas.


=== Criando um Projeto da Aplicação C/C++

1. Abra o assistente para Novo Projeto em Arquivo > Novo Projeto.
2. No assistente, selecione a categoria C/C++.
3. O assistente fornece a escolha de diversos tipos de novos projetos. Selecione Aplicação C/C++ e clique em Próximo. 
image::images/creating_application.png[]
4. Crie um novo projeto de Aplicação C/C++ no assistente usando os defaults. É possível escolher o nome do projeto e a localização do projeto.
5. Clique em Finalizar para sair do assistente.

Um projeto é criado com pastas lógicas. A pasta lógica não é um diretório. Trata-se de uma forma de organizar os arquivos e não reflete onde os arquivos estão armazenados fisicamente. Os arquivos adicionados a pastas lógicas são automaticamente parte do projeto e são construídos quando você constrói o projeto.

Os arquivos adicionados à pasta Arquivos Importantes não fazem parte do projeto e não são construídos quando você contrói o projeto. Esses arquivos são apenas para referência e são convenientes quando você tem um projeto com um makefile existente.


=== Alternando entre a View Lógica e a View Física do Projeto

Um projeto possui uma view lógica e uma física. É possível alternar entre a view lógica e a view física de seu projeto.

1. Selecione a guia Arquivos. Esta janela exibe a view física do projeto. Isso exibe os arquivos e as pastas conforme eles estão armazenados no disco. 
image::images/files_tab.png[]
2. Selecione a guia Projetos. Esta janela exibe a view lógica do projeto. 
image::images/projects_tab.png[]

A maioria dos comandos que são executados em um projeto estão disponíveis na guia de Projetos, não na guia Arquivos.


=== Adicionando Arquivos e Pastas ao Projeto

É possível adicionar pastas lógicas ao projeto.

1. Clique com o botão direito do mouse no nó do projeto do projeto da Aplicação e escolha Nova Pasta Lógica. Uma nova pasta lógica é adicionada ao projeto.
2. Clique com o botão direito do mouse na nova pasta lógica e selecione Renomear. Digite o nome que você gostaria de dar à nova pasta.

É possível adicionar ambos arquivos e pastas a uma pasta existente. As pastas lógicas podem ser aninhadas.


=== Adicionando Novos Arquivos ao Projeto

É possível adicionar novos arquivos ao projeto.

1. Clique com o botão direito do mouse na pasta Arquivos de Código-fonte e escolha Novo > Arquivo de Código-fonte C.
2. Na página de Nome e Localização da caixa de diálogo Novo Arquivo, digite  ``newfile``  no campo de Nome de Arquivo. 

image::images/adding_files.png[] 

3. Clique em Finalizar.

O arquivo  ``newfile.cpp``  é criado no disco no diretório especificado no assistente e adicionado à pasta Arquivos de Código-fonte. É possível adicionar qualquer tipo de arquivo a essa pasta, não somente arquivos de código-fonte.


=== Adicionando Mais Arquivos Novos ao Projeto

1. Clique com o botão direito do mouse na pasta Arquivos de cabeçalho e escolha Novo > Arquivo de Cabeçalho C++.
2. Na página de Nome e Localização da caixa de diálogo Novo Arquivo, digite  ``newfile``  no campo de Nome de Arquivo.
3. Clique em Finalizar.

O arquivo  ``newfile.c``  é criado no disco no diretório especificado no assistente e adicionado à pasta Arquivos de Cabeçalho.


=== Adicionando Arquivos Existentes ao Projeto

É possível adicionar arquivos existentes ao projeto de duas formas:

* Clique com o botão direito do mouse na pasta Arquivos de Código-fonte e escolha Adicionar Item Existente. É possível apontar para um arquivo existente no disco utilizando a caixa de diálogo Selecionar Item e adicionar o arquivo ao projeto.
* Clique com o botão direito do mouse na pasta Arquivos de Código-fonte e escolha Adicionar Itens Existentes das Pastas. Use a caixa de diálogo Adicionar Arquivos para adicionar pastas que contêm arquivos existentes.

Não use o item de menu Novo para adicionar itens existentes. O painel Nome e Localização informa que o arquivo já existe.


=== Definindo Propriedades do Projeto

Quando o projeto é criado, ele possui duas configurações: Depuração e Release. Uma configuração é uma coleção de definições utilizadas para o projeto, que permite alternar com facilidade muitas definições de uma só vez quando você seleciona uma configuração. A configuração Depuração constrói uma versão da aplicação que inclui informações de depuração. A configuração da Release constrói uma versão otimizada.

A caixa de diálogo Propriedades do Projeto contém informações de construção e de configuração para o projeto: Para abrir a caixa de diálogo Propriedades do Projeto:

* Clique com o botão direito do mouse no nó do projeto ``CppApplication_1``  e escolha Propriedades. 
image::images/project_properties.png[]

É possível modificar os defaults da ferramenta de construção, as definições do compilador e outras definições de configuração na caixa de diálogo Propriedades do Projeto, selecionando um nó no painel esquerdo e modificando as propriedades no painel direito. Selecione alguns dos nós e valores de propriedade e observe as propriedades que você pode definir. Ao definir as propriedades da guia Gerais, você está definindo as propriedades em todas as configurações do projeto. Ao definir as propriedades de Construir, Executar ou Depurar, você está definindo as propriedades na configuração selecionada no momento.


=== Gerenciando Configurações

As propriedades alteradas na janela Propriedades do Projeto são armazenadas no makefile da configuração atual. É possível editar as configurações default ou criar novas. Para criar uma nova configuração:

1. Clique no botão Gerenciar Configurações na caixa de diálogo Propriedades do Projeto.
2. Na caixa de diálogo Configurações, selecione a configuração que corresponde de forma mais próxima à configuração desejada. Nesse caso, selecione a configuração Release e clique no botão Duplicar. Em seguida, clique em Renomear.
3. Na caixa de diálogo Renomear, renomeie a configuração para PerformanceRelease. Clique em OK.
4. Clique em OK na caixa de diálogo Configurações.
5. No painel esquerdo, selecione o nó Compilador C.
6. Na caixa de diálogo Propriedades do Projeto, observe que a configuração PerformanceRelease está selecionada na lista drop-down Configuração.
7. Na folha de propriedades no painel direito, altere o Modo de Desenvolvimento de Release para PerformanceRelease. Clique em OK.

Você criou uma nova configuração que compilará a aplicação com um conjunto de opções diferente.


=== Definindo Propriedades do Arquivo de Código-fonte

Quando você define as propriedades do projeto em C ou C++, as propriedades relevantes são aplicadas a todos os arquivos do projeto. É possível também definir algumas propriedades de arquivos individuais.

1. Clique com o botão direito no arquivo de código-fonte  ``newfile.cpp``  na guia Projetos e escolha Propriedades.
2. Clique na categoria Geral e veja se é possível especificar um compilador diferente ou outra ferramenta para construir esse arquivo. É possível também utilizar uma caixa de seleção para excluir o arquivo da construção da configuração do projeto atualmente selecionado.
3. Clique no compilador C++ e veja se é possível substituir as definições do compilador de projeto e outras propriedades para esse arquivo.
4. Caixa de diálogo Cancelar as Propriedades do Arquivo


=== Construindo e Reconstruindo o Projeto

Para construir o projeto:

1. Clique com o botão direito no nó do projeto e escolha Construir e o projeto é construído. A saída da construção é exibida na janela de Saída.
2. Alterne a configuração de Depuração para PerformanceRelease na lista drop-down Configuração na barra de ferramentas principal. Agora o projeto será construído por meio da configuração PerformanceRelease.
3. Clique com o botão direito no nó do projeto e escolha Construir e o projeto é construído. A saída da construção é exibida na janela de Saída.

Para reconstruir seu projeto:

* Clique com o botão direito no nó do projeto e escolha Limpar e Construir para fazer uma reconstrução completa após remover produtos da construção anterior.
* Clique com o botão direito do mouse no nó do projeto e escolha Construir para fazer uma construção incremental. Os produtos anteriores construídos são mantidos, se os arquivos de origem não forem alterados.

É possível construir, limpar, ou limpar e construir o projeto, escolhendo ações no menu Executar ou usar os botões da barra de ferramentas. O projeto também mantém arquivos de objeto e executáveis de configurações diferentes separados, de forma que você não tenha que se preocupar em misturar arquivos de várias configurações.


=== Compilando um Único Arquivo

Para compilar um único arquivo de código-fonte:

* Clique com o botão direito do mouse no arquivo  ``main.cpp``  e escolha Compilar Arquivo. Somente esse arquivo é compilado.

A compilação de arquivo único não é suportada para o tipo de Projeto C/C++ com Códigos-fonte Existentes.


== Executando um Projeto

Para visualizar como executar um projeto, será utilizado o projeto  ``Argumentos``  da amostra do IDE. O programa  ``Argumentos``  imprime os argumentos de linha de comandos. Antes de executar o programa, será necessário definir alguns argumentos na configuração atual. A seguir o programa será executado.

Para criar o projeto  ``Argumentos`` , defina alguns argumentos e execute o projeto:

1. Escolha Arquivo > Novo Projeto.
2. No assistente do projeto, expanda a categoria Amostras.
3. Selecione a subcategoria C/C++ e, em seguida, selecione o projeto  ``Argumentos`` . Clique em Próximo e, em seguida, Finalizar.
4. Clique com o botão direito do mouse no nó do projeto  ``Arguments_1``  e escolha Construir. O projeto é construído.
5. Clique com o botão direito do mouse no nó do projeto  ``Arguments_1``  e escolha Propriedades.
6. Na caixa de diálogo Propriedades do projeto, selecione o nó Executar.
7. No campo de texto Executar Comando, digite 1111 2222 3333. Clique em OK. 
image::images/setting_arguments.png[]
8. Clique com o botão direito no nó do projeto e escolha Executar. A aplicação é executada. Seus argumentos são exibidos na janela de Saída.


== Criando um Projeto C/C++ com Códigos-fonte Existentes

Quando você cria um Projeto C/C++ com Código-fonte Existente, o IDE se baseia no makefile existente para obter instruções sobre como compilar e executar a aplicação.

Nesse exercício, será efetuado o download e a instalação dos códigos-fonte para o código-fonte aberto da biblioteca Loki C++. O Loki requer a biblioteca Pthreads para construir, que está disponível por default no Linux, Solaris e Mac OS X. Se você estiver usando o Windows, você deve fazer download da biblioteca Pthreads antes que você possa criar um projeto usando os arquivos-fonte do Loki.


=== Criando um Projeto C/C++ com Códigos-fonte Existentes

1. Se estiver executando o IDE no Windows, instale a biblioteca Pthreads de link:http://sourceware.org/pthreads-win32[+  ``http://sourceware.org/pthreads-win32`` +].

Por conveniência, é possível utilizar esse link:ftp://sourceware.org/pub/pthreads-win32/pthreads-2005-03-08.exe[+link direto+] para o instalador pthreads-2005-03-08.exe.

Extraia a biblioteca pthreads no diretório de usuário do Windows.

2. Faça o download da biblioteca  ``loki-0.1.7``  em link:http://sourceforge.net/projects/loki-lib[+  ``http://sourceforge.net/projects/loki-lib`` +].
3. Descompacte  ``loki-0.1.7``  em um diretório da sua escolha.
4. Abra o assistente para Novo Projeto em Arquivo > Novo Projeto.
5. Selecione a categoria C/C++.
6. Selecione Projeto C/C++ com Códigos-fonte Existentes e clique em Próximo.
7. Na página Selecionar Modo, clique no botão Procurar. Na caixa de diálogo Selecionar Pasta do Projeto, vá ao diretório no qual salvou  ``loki-0.1.7`` . Selecione o diretório  ``loki-0.1.7`` . Clique em Selecionar. 

image::images/existing_sources_project1.png[] 

8. Utilize o Modo de Configuração default, Automático. Clique em Finalizar.

O projeto é criado e aberto na guia Projeto, e o IDE executa automaticamente as ações Limpar e Construir especificadas no Makefile existente. O projeto também é automaticamente configurado para a assistência ao código.

image::images/existing_sources_project2.png[]


=== Criando um Projeto C/C++ de um Arquivo Binário

Você pode criar um projeto C/C ++ de um arquivo binário existente.

1. Escolha Arquivo > Novo Projeto.
2. Selecione a categoria C/C++.
3. Selecione Projeto C/C ++ de um Arquivo Binário e clique em Próximo.
4. 
Na página Selecionar Arquivo Binário do Assistente de Novo projeto, clique no botão Procurar. Na caixa de diálogo Selecionar Arquivo Binário, navegue até o arquivo binário do qual você deseja criar um projeto.

O diretório-raiz para os arquivos de origem do qual o binário foi construído é preenchido automaticamente. Por default, apenas os arquivos de código-fonte do qual o binário foi construída são incluídos no projeto. Por default, as dependências são incluídas no projeto. As bibliotecas compartilhadas necessárias pelo projeto são automaticamente listadas.

image::images/binary_project.png[]
5. Clique em Próximo.
6. Na página Nome do Projeto e Localização, você pode escolher o nome e a localização do projeto. Clique em Finalizar.


=== Construindo e Reconstruindo o Projeto

Para construir o projeto:

* Clique com o botão direito do mouse no nó do projeto e escolha Construir.

Para reconstruir o projeto:

* Clique com o botão direito do mouse no nó do projeto e escolha Limpar e Construir.


== [[Próximas Etapas]] 

Consulte link:navigating-editing.html[+Editando e Navegando em Códigos-fonte C/C+++] para um tutorial sobre como utilizar a navegação avançada e funcionalidades de edição no NetBeans IDE 6.9 para exibir e modificar o código-fonte.

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:%20C/C++%20Projects%20Quick%20Start%20-%20NetBeans%20IDE%207.4%20Tutorial[+Enviar Feedback neste Tutorial+]
