Programando em C/C++ com o Eclipse

Eu tentei, N vezes (vocês já sabem: N maior que zero e menor que mais infinito). Li um monte de tutoriais e nada. Bom, o que importa é que apresento abaixo um guia que, como vocês vão ver, não tem praticamente nada a ensinar para começar a trabalhar com projetos C/C++ no Eclipse.
OBS: este guia foi montado para usuários de Windows. Se você utiliza Mac, Ubuntu, Slackware, Solaris, infelizmente não vai encontrar informações específicas para o seu ambiente. Mas pode aproveitar o embalo e criar um para tal.

Motivação

Praticamente todo estudante de Computação já passou pelo perrengue de, cansado do velho DevCpp ou até mesmo criar os arquivos .c ou .cpp com um editor qualquer e compilar na linha de comando com o gcc, por exemplo, procurar por IDEs mais “bem servidas” como Eclipse e Netbeans para trabalhar com um pouco de dignidade e descobrir que utiliza-las para programar em C/C++ é, digamos, trabalhoso.

O fato é que encostado na parede por um novo programa-exemplo do ilustre professor Glauber Cintra por entregar, eu decidi tentar novamente utilizar outra IDE que não fosse o DevCpp. Como os trabalhos no CGDT estão se desenrolando com o JBoss Developer Studio (chamemos de JDev), uma versão do Eclipse entupida de plugins para desenvolvimento WEB, resolvi usá-lo ao invés do Netbeans. Seguro morreu de velho e eu não sou bobo de misturar as coisas; fui baixar uma versão do Eclipse para trabalhar paralelamente, sem modificar as configurações do JDev. A partir daqui [modo blogueiro off] eu me afasto dos comentários pessoais por se tratar de um blog não totalmente voltado para TI e prometo focar no que importa para atingir nosso objetivo.

Baixando o Eclipse

Em eclipse.org/downloads vocês encontram várias versões; a que iremos usar e que é a mais leve. Iremos baixar Eclipse IDE for C/C++ Developers (79 MB). Estão disponíveis versões para Windows, Mac e Linux. Como utilizo Windows 7, baixei o arquivo eclipse-cpp-galileo-SR1-win32.zip. Basta extraí-lo e já temos o Eclipse pronto para ser utilizado. Quando disse que esse guia não tinha praticamente nada a ensinar estava me referindo a esse ponto: apenas baixamos o Eclipse e não há mais praticamente nada a fazer – sem configurações no IDE, sem plugins por fora. Realmente utilizaremos um plugin (CDT), mas ele já está devidamente integrado com o Eclipse para C/C++. Vamos agora entrar na nossa segunda e última instalação.

Baixando e instalando o MinGW

O Eclipse não compila por você. Para Java, C, C++, Ada, Prolog ou o que seja, você precisa de um compilador/interpretador (e geralmente um plugin) para utilizar o IDE. Para quem utiliza linux e Mac (eu acho), um compilador c já deve estar disponível no sistema, provavelmente o gcc. No meu caso, Windows, temos algumas opções e eu vou listar apenas duas: instalar o CygWin ou o MinGW. Ambos irão disponibilizar o compilador gcc (e g++ para c++) e o Make, que trabalha com um makefile a fim de checar dependências, linkedição, etc. Para saber mais sobre ele clique aqui. Optei pelo MinGW e tudo correu absolutamente bem. O MinGW pode ser baixado em sourceforge.net/projects/mingw/files e nesse link vocês encontram um HOWTO para instalação, muito bom. De qualquer forma vamos ver os passsos aqui: faça o download do MinGW e execute-o. Selecione a opção “Download and install” e em seguida aceite os termos do contrato. Escolham a opção “Current” para a versão do MinGW que deve ser instalada. Na tela de seleção de componentes a serem instalados, além da opção default “MinGW base tools”, selecione também “g++” se houver interesse em também trabalhar com C++ e, principalmente, o “MinGW Make”.

No passo seguinte é definido o diretório de instalação; anote-o para que possamos adicioná-lo na variável de ambiente PATH (será mostrado adiante). Daí basta concluir a instalação com Next, Next,.., Finish.

Definindo o caminho do MinGW no PATH

Para que o SO consiga acessar os compiladores instalados pelo MinGW, é preciso definir o caminho da pasta que contém os binários dos compiladores na variável de ambiente PATH. Ela já deve existir em sua máquina; caso contrário, pode criá-la como “Path”. Para criar ou editar há pelo menos 3 caminhos:
1. Iniciar -> Painel de Controle -> Sistema -> Confiurações
Avançadas do Sistema -> aba Avançado -> botão “Variáveis de Ambiente”.
As outras duas formas chegam na mesma tela “Sistema”, através das propriedades do Meu Computador ou do atalho [Tecla Windows] + [Pause/Break].

Lá, vamos editar/criar a variável “Path” colocando nela o endereço da pasta do MinGW/bin, que deve ser C:\MinGW\bin, se você não modificou o caminho padrão na instalação. Se já existir conteúdo na variável de ambiente, separe o que havia antes com um ponto-e-vírgula.

Criando o projeto no Eclipse

Agora vamos começar a trabalhar. Já podemos abrir o Eclipse para montar o projeto. Ao iniciar, temos essa tela como inicial da perspectiva C/C++.

Vamos clicar em File -> New -> Project (ou na aba Project Explorer, botão direito -> New -> Project).

Para assistente do projeto escolha “C Project” (ou “C++ Project” se for o caso). Defina o nome do projeto e selecione “Empty Project” no tipo. Perceba que na aba Toolchains à direita já está definido que utilizaremos o MinGW GCC para compilar e montar o executável.

Pronto, podemos terminar clicando em “Finish”. O projeto fica inicialmente com essa estrutura:

Para começar a escrever nosso programa em C, vamos criar uma pasta de código fonte clicando com o botão direito sobre o projeto e acessando New -> Source Folder. Vamos definí-la com o nome “src”.

Agora, vamos criar um arquivo fonte chamado “main.c”, clicando com o botão direito do mouse sobre a pasta src e selecionando New -> Source File. Não esqueçam de colocar a extensão na denifição do nome do arquivo.

Um velho “Hello World” pra começar e testar o projeto é a melhor pedida. No arquivo main.c vamos escrever o seguinte código (ou à seu critério):

#include <stdio.h>
#include <stdlib.h>

int main(){
         printf(“Tinha que ser HelloWorld..”);
         return EXIT_SUCCESS;
}

E começamos a desfrutar de vantagens de um IDE robusto como o Eclipse, mesmo que com recursos simples como autocomplete.

  

O acesso à documentação também é um bom recusro, muito útil quando o código se torna grande ou se está utilizando uma biblioteca que pouco conhecemos.

Programa já escrito e sintaticamente verificado pelo Eclipse (outro recurso, marcação em vermelho dos trechos que vão disparar erro de compilação), vamos compilar o projeto. Selecione o projeto clicando sobre ele e depois vá ao menu Project -> Build All, ou simplesmente aperte Ctrl + B.

Serão gerados duas novas pastas no projeto: Binaries e Debug, onde ficam o executável do projeto e um conjunto formado pelos arquivos .o dos fontes do projeto mais um executável, respectivamente. O arquivo executável do projeto segue o padrão [Nome_do_Projeto].exe (pode ser alterado nas propriedades dos projeto, aba Run/Debug Setting -> Selecionar o projeto -> botão Edit). Essa é a estrutura do projeto obtida após o build.

Vamos executar o projeto selecionado-o e clicando em Run -> Run, ou simplesmente apertando Ctrl + F11. Na aba Console podemos ver a saída do nosso programa.

Avançando, mas nem tanto..

Projeto de um arquivo só é coisa de faculdade, e dos primeiros semestres. Projeto de vergonha em C/C++ são grandes, lotados de arquivos fonte e seus respectivos cabeçalhos (headers) que são incluidos nos demais para colocar em ação a reusabilidade, seja o projeto orientado a objetos ou estruturado. Em um exemplo tão simples como o anterior, criei um arquivo chamado Auxiliar.c com a seguinte função:

int enigma(int n){
          return 2*n;
}

Em seguida, no mesmo diretório src criei um arquivo cabeçalho para esse arquivo chamado Auxiliar.h com o seguinte conteúdo:

#ifndef AUXILIAR_H_
#define AUXILIAR_H_

int enigma(int);

#endif /* AUXILIAR_H_ */

Para quem não está familiarizado, o uso das diretivas #ifndef e #endif associadas à diretiva #define serve para evitar o problema de inclusão redundante de bibliotecas; suponhamos que um programa A inclui uma biblioteca B e C, e que a própria biblioteca B inclui a biblioteca C. A grosso modo, utilizando definição de blocos para tais bibliotecas como acima, quando A incluir B, B incluirá C na sequência. Quando A tentar incluir C, já haverá uma sinalização que isso já ocorreu. Daí a tentativa de incluir C (novamente) é desprezada. Caso não haja esse cuidado, ao fazer inclusões redundantes você receberá uma mensagem de erro do compilador e a redundância terá que ser resolvida. Voltando ao exemplo, vamos incluir Auxiliar.h em main.c para fazermos uso da função enigma. Segue o código de main.c modificado para tal:

#include <stdio.h>
#include <stdlib.h>
#include “Auxiliar.h”

int main(){
        int valor = 50;
        printf(“A funcao enigma retorna valor %d para entrada %d.”,
                              enigma(valor),valor);
        return EXIT_SUCCESS;
}

 

Reconstruindo (build) e executando o projeto obtemos essa saída no Console.

Conclusão

Reiterando o que disse no início: esse guia não ensina praticamente nada. Como puderam ver, a versão Galileo do Eclipse para C/C++ já vem pronta e sem bugs (até onde usei) para enxergar automaticamente ao MinGW, o que nos dá o poder de abrir o IDE, criar um projeto e já sair desenvolvendo sem precisar configurar uma série detalhes; isso [modo blogueiro on]deixamos isso para os entusiastas, desocupados e masoquistas. No mais, vimos apenas a instalação (Next,Next..,Finish) do MinGW e definição da Variável de Ambiente. Você pode baixar aqui o compactado com os arquivos do projeto. 

Comentários, sugestões e, acredito que irão aparecer, correções de erros mostrados aqui são absolutamente bem vindos.
Até o próximo post útil!

Tags: , ,

7 Respostas para “Programando em C/C++ com o Eclipse”

  1. Lucas Disse:

    massa! vlw

    nao sabia cri uma bliblioteca agora sei.

    =)

  2. Romáryo Disse:

    Amigo, encontrei um problema, o meu eclipse não abria por conta do JRE, então instalei e ele abriu, mas agora depois que fiz esse path como no tutorial toda vez que clico para abrir o eclipse ele da a mesma msg, mesmo eu tendo reinstalado o JRE, voce sabe o que pode ser?

  3. Rogério Souza Disse:

    Valeu mesmo cara muito bom esse seu tutorial… Comecei a aprender classes agora em C++, assunto muito dahora, e seu tutorial me ajudou pois tentei instalar primeiro o netbens no windows mas acabei desistindo pois dava muita dor de cabeça… achei o eclipse muito mais fácil de trabalhar apesar d eser em inglês. Vai continuar postando coisas sobre computação ainda?

  4. gabrieLsaraivA Disse:

    :)
    Simples, sem viadagem. Nota 10.

  5. Bruno Disse:

    Toda vez que dou F11, aparece:

    “Launch failed. Binary not found. ”

    Tu sabe que erro pode ser esse ?

    vlw

  6. Fernando Disse:

    Segui o procedimento porém na hora de dar o build sempre retorna o seguinte erro:

    undefined reference to `WinMain@16′

    Sabes o porquê?

  7. Daril Disse:

    Segui a dica e o resultado foi dezzzzzzzzzz. Muito obrigado!!!!!!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 60 other followers