// 
//     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[]

[start=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.

[start=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[]

[start=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[] 


[start=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[]

[start=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.


[start=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`` +].

[start=3]
. Descompacte  ``loki-0.1.7``  em um diretório da sua escolha.

[start=4]
. Abra o assistente para Novo Projeto em Arquivo > Novo Projeto.

[start=5]
. Selecione a categoria C/C++.

[start=6]
. Selecione Projeto C/C++ com Códigos-fonte Existentes e clique em Próximo.

[start=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[] 


[start=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[]

[start=5]
. Clique em Próximo.

[start=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+]
